文档指出,如果适用,findAndModify将返回多个查询。
如何找到一个文档并在一次通话中更新?
答案 0 :(得分:0)
您可以使用:
db.coll.find({query}).limit(1).forEach(function(item)
{
db.coll.findAndModify({_id : item._id}, update});
})
db.coll.find
只会找到一个文档,您可以对其进行修改。
db.coll.findOne({query})
真的是db.coll.find({query})
,语法如下,在mongo中没有性能优势。
// findOne() method body. it uses find() method in it
function (query, fields, options) {
var cursor = this.find(query, fields, -1, 0, 0, options);
if (!cursor.hasNext()) {
return null;
}
var ret = cursor.next();
if (cursor.hasNext()) {
throw "findOne has more than 1 result!";
}
if (ret.$err) {
throw "error " + tojson(ret);
}
return ret;
}