Dal manuale, le options
l'argomento necessita di un "fields"
digitarlo poiché ci sono altri dettagli come "upsert"
e "new"
dove questo si applica. Nel tuo caso anche vuoi il "new"
opzione:
User.findOneAndUpdate(
{ "_id": "132324" },
{ "$set": { "hair_color": "yellow" } },
{
"fields": { "first_name":1, "last_name": 1 },
"new": true
}
).exec(...)
In alternativa puoi usare .select()
User.select({ "first_name": 1, "last_name": 1 }).findOneAndUpdate(
{ "_id": "132324" },
{ "$set": { "hair_color": "yellow" } },
{ "new": true }
).exec(...)
Notando che senza "new": true
il documento restituito è nello stato prima la modifica dell'aggiornamento è stata elaborata. A volte questo è ciò che intendi, ma la maggior parte delle volte vuoi davvero il documento modificato.