query objects elemmatch array mongodb mongoose mongodb-query

objects - Mongodb: ¿la proyección del elemento de matriz con findOneAndUpdate no funciona?



mongoose find in array of objects (1)

Como se especifica en los documentos de findOneAndUpdate , debe incluir su objeto de proyección como propiedad de selección del parámetro de options :

theCollection.findOneAndUpdate( { name : ''cherif'', ''friends.name'':''kevin'' }, { $set:{ ''friends.$.age'':25 } }, { select: { friends: { $elemMatch: { age : 25 } } } }, function(err,result){ if (!err) { console.log(result); } });

Estoy usando Mongoose y estoy tratando de actualizar un elemento de matriz y volver a actualizarlo. Esta es mi estructura de documento:

{ name:String, friends:[ { name:String, age:Number } ] }

Cuando ejecuto la siguiente consulta, obtengo a todos los amigos en el resultado, pero solo quiero recuperar a mis amigos de 25 años:

theCollection.findOneAndUpdate( { name : ''cherif'', ''friends.name'':''kevin'' }, { $set:{ ''friends.$.age'':25 } }, { friends: { $elemMatch: { age : 25 } } }, function(err,result){ if (!err) { console.log(result); }});