2016-12-07 44 views
0

有沒有辦法在一個命令中更新所有與id列表匹配的文檔。在一個命令中更新所有與ID列表匹配的文檔

目前我有循環每個ID更新

var ids = [ 
    "8007068113729", 
    "8007068502622", 
    "8007068505821", 
    "0825646209804", 
    "0880319084614", 
    "4260041334885" 
] 

ids.forEach(function(i){ 
    db.listing.update({_id:i},{$set:{Supplier:'S'}}); 
}); 

回答

2

只需使用updateMany方法和$in運算符。

var ids = [ 
    "8007068113729", 
    "8007068502622", 
    "8007068505821", 
    "0825646209804", 
    "0880319084614", 
    "4260041334885" 
] 

db.listing.updateMany({ "_id": { "$in": ids }}, { "$set": { "Supplier": "S" }}); 
1

我認爲你可以使用$在運營商標誌,因爲這:

var ids = [ 
    "8007068113729", 
    "8007068502622", 
    "8007068505821", 
    "0825646209804", 
    "0880319084614", 
    "4260041334885" 
] 

db.listing.update({_id:{ $in: ids}},{$set:{Supplier:'S'}}, {multi: true}); 

。希望幫助!

相關問題