Я проверил исходный код монаха и, наконец, сделал это работающим. Даже кодовая документация говорит, как это должно быть, но это не видно из документации в сети монаха.
/**
* findAndModify
*
* @param {Object} search query, or { query, update } object
* @param {Object} optional, update object
* @param {Object|String|Array} optional, options or fields
* @param {Function} callback
* @return {Promise}
* @api public
*/
Это означает, что вы можете указать запрос и обновление в качестве отдельных параметров, плюс опции в качестве третьего параметра:
notescollection.findAndModify(
{ "_id": id },
{ "$set": {
"title": title,
"content": content
}},
{ "new": true, "upsert": true },
function(err,doc) {
if (err) throw err;
console.log( doc );
}
);
Или вы можете указать запрос и update в качестве полей первого параметра, плюс options в качестве второго параметра:
notescollection.findAndModify(
{
"query": { "_id": id },
"update": { "$set": {
"title": title,
"content": content
}}
},
{ "new": true, "upsert": true },
function(err,doc) {
if (err) throw err;
console.log( doc );
}
);
Для получения дополнительной информации об источниках, проверьте функцию findAndModify в файле collection.js.