sql >> Database teknologi >  >> NoSQL >> MongoDB

Mongoose vælg felter for at returnere fra findOneAndUpdate

Fra manualen, indstillingerne argumentet har brug for en "fields" indtast det, da der er andre detaljer såsom "upsert" og "ny" hvor dette gælder. I dit tilfælde du også vil have "ny" mulighed:

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

Alternativt kan du bruge .select()

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

Bemærk at uden "ny":sand det returnerede dokument er i tilstanden før ændringen af ​​opdateringen blev behandlet. Nogle gange er det det, du mener, men det meste af tiden vil du virkelig have det ændrede dokument.



  1. Kunne ikke starte redis.service:Enheden redis-server.service er maskeret

  2. Mongo rækkefølge efter længde af array

  3. Hvordan kan Redis sortere efter to forskellige sorterede sæt?

  4. MongoDB $asin