Le findAndModify
méthode a la signature suivante
findAndModify(query, sort, doc, options, callback)
où
query
<object>
:L'objet de requête pour localiser l'objet à modifier.sort
<array>
:Si plusieurs documents correspondent, choisissez le premier dans l'ordre de tri spécifié comme objet à manipuler.doc
<object>
:Les champs/valeurs à mettre à jour.options
<object>
facultatif :paramètres facultatifs.
La raison pour laquelle vous obtenez l'erreur est que le sort
spécification est manquante et à la place, il lit la mise à jour doc
comme sort
paramètre.
Vous devez spécifier le paramètre de tri comme suit :
db.get().collection('bars').findAndModify(
{ "barID": req.body.button }, // query
[ ["barID", 1] ], // sort
{
"$push": { // doc
"usersfbID": req.body.profileUser[0].facebookID,
"usersDocID": req.body.profileUser[0]._id
}
},
{ "new": true }, // options
function(err, doc){ // callback
if (err){
throw err;
} else if(doc){
console.log('Existing document updated successfully');
console.log(doc);
}
}
);