PyMongo和MongoDB $每个修饰符

时间:2013-06-11 21:56:16

标签: python mongodb pymongo

我似乎遇到了PyMongo / MongoDB中$ each修饰符的问题。假设我有一个名为tags的数组。

我可以像这样更新数据库,它可以工作:

   for tag in tags:
      db_collection.update({'username':username},{'$push':{'docs.tags': tag }})

但是,我认为使用$each修饰符会更有效,而不是对数据库执行多次写入。从理论上讲,这可以在没有循环的情况下编写:

db_collection.update({'username':username},{'$push':{'docs.tags': {'$each': tags} }})

但它不起作用。似乎PyMongo没有检测到$ each修饰符或其他东西。它仍然存储,但结果是这样的字典:

{'$each': [tag1, tag2, ...] }

我写作的方式是否存在问题,或者这实际上无需担心。如果我是第一种方式,那么是否会对性能产生影响。

1 个答案:

答案 0 :(得分:0)

事实证明我的mongoDB版本不支持$ push的$ each修饰符。 $ addToSet可以工作,但我最终会升级我的mongoDB。