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.