Il findAndModify
il metodo ha la seguente firma
findAndModify(query, sort, doc, options, callback)
dove
query<object>:l'oggetto della query per individuare l'oggetto da modificare.sort<array>:se più documenti corrispondono, scegli il primo nell'ordinamento specificato come oggetto da manipolare.doc<object>:i campi/valori da aggiornare.options<object>opzionale:impostazioni opzionali.
Il motivo per cui ricevi l'errore è perché sort manca la specifica e invece sta leggendo l'aggiornamento doc come sort parametro.
È necessario specificare il parametro di ordinamento come segue:
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);
}
}
);