O
findAndModify
método tem a seguinte assinatura findAndModify(query, sort, doc, options, callback)
Onde
query
<object>
:o objeto de consulta para localizar o objeto a ser modificado.sort
<array>
:se vários documentos corresponderem, escolha o primeiro na ordem de classificação especificada como o objeto a ser manipulado.doc
<object>
:os campos/vals a serem atualizados.options
<object>
opcional:configurações opcionais.
O motivo pelo qual você está recebendo o erro é porque o
sort
a especificação está ausente e, em vez disso, está lendo a atualização doc
como a sort
parâmetro. Você precisa especificar o parâmetro de classificação da seguinte maneira:
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);
}
}
);