sql >> Databasteknik >  >> NoSQL >> MongoDB

Mongoose välj fält att returnera från findOneAndUpdate

Från manualen, alternativen argumentet behöver en "fields" knappa in det eftersom det finns andra detaljer som "upsert" och "ny" där detta gäller. I ditt fall du också vill ha "ny" alternativ:

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

Alternativt kan du använda .select()

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

Notera att utan "new":true dokumentet som returneras är i tillståndet före ändringen av uppdateringen bearbetades. Ibland är det så här du menar, men oftast vill du verkligen ha det modifierade dokumentet.



  1. MongoDB $ln

  2. MongoDB hitta()

  3. Effektivt sätt gör om inställningen medlemsuppdatering

  4. Introduktion till Spring Data MongoDB