$ in在Mongodb中不起作用

时间:2015-07-15 06:29:39

标签: mongodb

我有两个文件"姓名"价值观" 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"在这两种情况下都会得到更新但不会更新其他文档。

请帮帮我。

2 个答案:

答案 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)

http://api.mongodb.org/python/current/api/pymongo/collection.html#pymongo.collection.Collection.update_many

答案 1 :(得分:1)

以下代码现在正在使用

collection.update({
    "Name": {
    "$in": ["Raja_5", "Raja_6"]
    }
  }, {
    "$set": {
    "City": "Hyd"
    }
  }, "false", "true")