繁体   English   中英

根据文档mongodb pymongo中的项目更新

[英]update depending on item within document mongodb pymongo

假设我有一个带有字典对象的mongodb集合,例如:

{
    'value1' : 4 , 
    'value2' : 0  
}

而且我想更新数据库中的每个字典对象,以使value2 = value1 / 2 ,有没有简单的方法呢?

这种简单的方法似乎无效,因为您无法引用value1值:

some_db.update(  {} , { 'value2' : 'this.value1'/2 } ) # wont work, right? 

另一种方式是执行批处理作业,由一批我自己的电脑上的数据批量拉,这样我可以retreive价值a来然后更新的值b 我宁愿让服务器执行此操作。

MongoDB没有此功能。 您将必须分批执行此操作。 如果这样做,我建议您在每次更新之间睡一会儿,以使服务器也能正常运行该应用程序。 否则,您可能最终会在数据库不足的情况下进行读/写操作。 当然,只有在您确实拥有(数百万)条记录的负载时,才真正有必要。

嘿,在pymongo中做这样的事情

from pymongo import MongoClient
cursor_object = MongoClient()[your_db][your_collection]
for object in cursor_object.find():
  id = object['_id']
  val1 = object['value1']
  update = val1/2
  cursor_object.update({"_id":id},{"$set":{"value2":update}})

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM