sql >> Databáze >  >> NoSQL >> MongoDB

Mongoose vyberte pole pro návrat z findOneAndUpdate

V příručce options argument potřebuje "fields" zadejte jej, protože existují další podrobnosti, jako je "upsert" a "new" kde toto platí. Ve vašem případě také chtít "new" možnost:

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

Alternativně můžete použít .select()

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

Upozorňujeme, že bez "new": true vrácený dokument je ve stavu před byla zpracována úprava aktualizace. Někdy máte na mysli toto, ale většinou opravdu chcete upravený dokument.



  1. MongoDB a C#:Vyhledávání bez rozlišení velkých a malých písmen

  2. Přidejte pole, které není ve schématu, pomocí mongoose

  3. Jak se bezpečně připojit k Heroku Redis přes příkazový řádek?

  4. Chybová zpráva:MongoError:bad auth Ověření se nezdařilo prostřednictvím řetězce URI