有没有办法只用一个命令更新匹配id列表的所有文档。
目前我必须循环每个id才能更新
var ids = [
"8007068113729",
"8007068502622",
"8007068505821",
"0825646209804",
"0880319084614",
"4260041334885"
]
ids.forEach(function(i){
db.listing.update({_id:i},{$set:{Supplier:'S'}});
});
答案 0 :(得分:3)
只需使用updateMany
方法和$in
运算符。
var ids = [
"8007068113729",
"8007068502622",
"8007068505821",
"0825646209804",
"0880319084614",
"4260041334885"
]
db.listing.updateMany({ "_id": { "$in": ids }}, { "$set": { "Supplier": "S" }});
答案 1 :(得分:1)
我认为你可以使用带多标志的 $ in 运算符:
var ids = [
"8007068113729",
"8007068502622",
"8007068505821",
"0825646209804",
"0880319084614",
"4260041334885"
]
db.listing.update({_id:{ $in: ids}},{$set:{Supplier:'S'}}, {multi: true});
希望有所帮助!