python - MongoDB "$or"更新

标签 python mongodb

我有一些代码可以使用 $or 操作符从 Mongo 中删除多个对象,或者至少应该这样做。这段代码基本上说明了我的应用程序正在做什么

lookup = []
listofids = ['4e86fee56607f2a8a2000002','4e86fee56607f2a8a2000003','4e86feeb6607f2a8a2000006']
for id in listofids:
    lookup.append({'_id':core.ObjectId(id)})

r = self.db().photos.update({
    "$or":lookup
},{
    '$set':{'var':'value'}
})

这不起作用,它不会更新任何文档。但是,如果我更改代码来执行基本查找

lookup = []
listofids = ['4e86fee56607f2a8a2000002','4e86fee56607f2a8a2000003','4e86feeb6607f2a8a2000006']
for id in listofids:
    lookup.append({'_id':core.ObjectId(id)})

r = self.db().photos.find({
    "$or":lookup
})

for rs in r:
    self.write(str(rs)+"\n\n")

它输出所有记录。如何让 Mongo 更新记录?

self.db() 映射到 MongoDB 数据库,photos 是集合。

这段代码是用Python编写的,但我想语法很容易理解

最佳答案

您需要将 multi 参数设置为 True 才能更新与您的查询匹配的所有文档。否则,它只会更新第一个(您可能没有注意到)。请参阅Collection.update .

(另请注意:如果您要查询单个字段的多个值,则可以使用 $in operator 。)

关于python - MongoDB "$or"更新,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7652370/

相关文章:

python - 如何使用样式格式化文本

python - 编辑字典中的值

node.js - 当属性确实存在时,为什么 Mongoose 模型的 hasOwnProperty 返回 false?

javascript - 具有对象属性数组的 Mongodb 文档 : how match property of this array?

django - 在 AWS 上使用 MongoDB 部署 Django 应用程序

java - 运行太多测试时失去与 mongoDB 的连接

python - 在不填充内存的情况下读取 Python 中的特定文件行

python - 修复 curve_fit 中的拟合参数

python - Matplotlib 毫秒在 x 轴上打勾

javascript - MEAN-Stack 使用 mongoose 在 MongoDB 中保存数组