Der findAndModify
Methode hat die folgende Signatur
findAndModify(query, sort, doc, options, callback)
wo
query<object>:Das Abfrageobjekt zum Suchen des zu ändernden Objekts.sort<array>:Wenn mehrere Dokumente übereinstimmen, wählen Sie das erste in der angegebenen Sortierreihenfolge als zu bearbeitendes Objekt aus.doc<object>:Die zu aktualisierenden Felder/Werte.options<object>optional:Optionale Einstellungen.
Der Grund, warum Sie den Fehler erhalten, liegt in der sort Spezifikation fehlt und stattdessen das Update doc liest als sort Parameter.
Sie müssen den Sortierparameter wie folgt angeben:
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);
}
}
);