我想在我的收藏中找到任何文件:
然后将其爱好字段的值设置为等于其体育字段。
db.myCollection.update(
{ $or: [{"hobby": {$exists: false} },{"hobby": ""}]}
, {
$set: {
hobby: ????sports
}
}, {
multi: true
},
function(err, result) {
console.log(result);
console.log(err);
})
使用上面的命令,我想我会将 sports 的值作为固定值传递给所有匹配的文档。有没有办法获取相应的体育值并将其设置为业余爱好?
答案 0 :(得分:0)
您必须在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 }
)
})
})
答案 1 :(得分:0)
这是修改后的版本正确更新了值:
db.myCollection.find({
$or: [{ "hobby": { $exists: false } }, { "hobby": "" }]
}).toArray().forEach(function (item) {
db.myCollection.update(
{ _id: item._id },
{ $set: { hobby: item.sports } },
{ multi: true }
)
})
})