sql >> Database >  >> NoSQL >> MongoDB

Mongoose selecteert velden om terug te keren van findOneAndUpdate

Uit de handleiding, de options argument heeft een "fields" nodig toets het in omdat er andere details zijn zoals "upsert" en "new" waar dit van toepassing is. In jouw geval ook wil de "new" optie:

User.findOneAndUpdate(
  { "_id": "132324" },
  { "$set": { "hair_color": "yellow" } },
  {
   "fields": { "first_name":1, "last_name": 1 },
   "new": true 
  }
).exec(...)

Als alternatief kunt u .select() . gebruiken

User.select({ "first_name": 1, "last_name": 1 }).findOneAndUpdate(
  { "_id": "132324" },
  { "$set": { "hair_color": "yellow" } },
  { "new": true }
).exec(...)

Merk op dat zonder "new": true het geretourneerde document is in de staat voor de wijziging van de update is verwerkt. Soms is dit wat je bedoelt, maar meestal wil je het gewijzigde document echt hebben.



  1. MongoDB-voorvoegsel-jokerteken:fulltext-search ($ tekst) deel vinden met zoekstring

  2. kunnen meerdere clients tegelijkertijd toegang krijgen tot dezelfde lijst zonder geblokkeerd te worden in Redis?

  3. vervaldatum instellen voor Hashmap-waarden in Redis?

  4. MongoServer.State-equivalent in de 2.0-driver