mongodb使用条件查找文档并更新相应文档中的另一个字段
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了mongodb使用条件查找文档并更新相应文档中的另一个字段相关的知识,希望对你有一定的参考价值。
我想在我的收藏中找到任何文件:
- 它的爱好领域是空的
- 或其业余爱好领域不存在
然后将其爱好字段的值设置为等同于其运动场。
db.myCollection.update(
{ $or: [{"hobby": {$exists: false} },{"hobby": ""}]}
, {
$set: {
hobby: ????sports
}
}, {
multi: true
},
function(err, result) {
console.log(result);
console.log(err);
})
使用上面的命令,我想我将把sports的值作为固定值传递给所有匹配的文档。有没有什么方法可以获得相应的运动价值并将其设定为业余爱好?
答案
这是修改后的版本正确更新值:
db.myCollection.find({
$or: [{ "hobby": { $exists: false } }, { "hobby": "" }]
}).toArray().forEach(function (item) {
db.myCollection.update(
{ _id: item._id },
{ $set: { hobby: item.sports } },
{ multi: true }
)
})
})
另一答案
您必须在2个查询中执行此操作:
db.myCollection.find({
$or: [{ "hobby": { $exists: false } }, { "hobby": "" }]
}).toArray().forEach(function (item) {
db.myCollection.update(
{ _id: item._id },
{ $set: { hobby: item.sports } },
{ multi: true }
)
})
})
以上是关于mongodb使用条件查找文档并更新相应文档中的另一个字段的主要内容,如果未能解决你的问题,请参考以下文章
如何在特定字段 MongoDB 上查找 Distinct No of Document 并根据条件打印文档数?