Del manual, las options
el argumento necesita un "fields"
escríbalo ya que hay otros detalles como "upsert"
y "new"
donde esto se aplica. En tu caso también quiero el "new"
opción:
User.findOneAndUpdate(
{ "_id": "132324" },
{ "$set": { "hair_color": "yellow" } },
{
"fields": { "first_name":1, "last_name": 1 },
"new": true
}
).exec(...)
Alternativamente, puede usar .select()
User.select({ "first_name": 1, "last_name": 1 }).findOneAndUpdate(
{ "_id": "132324" },
{ "$set": { "hair_color": "yellow" } },
{ "new": true }
).exec(...)
Teniendo en cuenta que sin "new": true
el documento devuelto está en el estado antes se procesó la modificación de la actualización. Algunas veces esto es lo que quiere decir, pero la mayoría de las veces realmente desea el documento modificado.