我有两个文件"姓名"价值观" Raja_5"和" Raja_6"。 我已经写了以下代码来更新两个文件中的城市。
collection.update({"Name":{"$in":["Raja_5","Raja_6"]}},{"$set":{"City":"Hyd"}})
(或)
collection.update({"$or":[{"Name":"Raja_5"},{"Name":"Raja_6"}]},{"$set":{"City":"Hyd"}})
但是" Raja_5"在这两种情况下都会得到更新但不会更新其他文档。
请帮帮我。
答案 0 :(得分:1)
这是因为' multi'运算符未设置。
db.collection.update({"$or":[{"Name":"Raja_5"},{"Name":"Raja_6"}]},{"$set":{"City":"Hyd"}}, { multi: true })
以上是它的shell命令。
对于pymongo,我认为可以按照以下方式完成
collection.update({"$or":[{"Name":"Raja_5"},{"Name":"Raja_6"}]},{"$set":{"City":"Hyd"}}, multi=True)
在3.0版中,引入了update_many
操作,格式为:
update_many(filter, update, upsert=False)
答案 1 :(得分:1)
以下代码现在正在使用
collection.update({
"Name": {
"$in": ["Raja_5", "Raja_6"]
}
}, {
"$set": {
"City": "Hyd"
}
}, "false", "true")