No manual, as
options
argumento precisa de um "fields"
digite-o, pois existem outros detalhes, como "upsert"
e "new"
onde isso se aplica. No seu caso, você também quer o "new"
opção:User.findOneAndUpdate(
{ "_id": "132324" },
{ "$set": { "hair_color": "yellow" } },
{
"fields": { "first_name":1, "last_name": 1 },
"new": true
}
).exec(...)
Alternativamente, você pode usar
.select()
User.select({ "first_name": 1, "last_name": 1 }).findOneAndUpdate(
{ "_id": "132324" },
{ "$set": { "hair_color": "yellow" } },
{ "new": true }
).exec(...)
Observando que sem
"new": true
o documento retornado está no estado antes a modificação da atualização foi processada. Algumas vezes é isso que você quer dizer, mas na maioria das vezes você realmente quer o documento modificado.