Depuis le manuel, les options
l'argument a besoin d'un "fields"
saisissez-le car il existe d'autres détails tels que "upsert"
et "new"
où cela s'applique. Dans votre cas, vous également veux le "new"
choix :
User.findOneAndUpdate(
{ "_id": "132324" },
{ "$set": { "hair_color": "yellow" } },
{
"fields": { "first_name":1, "last_name": 1 },
"new": true
}
).exec(...)
Vous pouvez également utiliser .select()
User.select({ "first_name": 1, "last_name": 1 }).findOneAndUpdate(
{ "_id": "132324" },
{ "$set": { "hair_color": "yellow" } },
{ "new": true }
).exec(...)
Notant que sans "new": true
le document retourné est dans l'état avant la modification de la mise à jour a été traitée. Parfois, c'est ce que vous voulez dire, mais la plupart du temps, vous voulez vraiment le document modifié.