根据mongodb pymong文档中的项目进行更新

2024-04-20 03:31:38 发布

您现在位置:Python中文网/ 问答频道 /正文

假设我有一个mongodb集合,其中包含如下dictionary对象:

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

我想更新数据库中的每个dictionary对象,这样value2 = value1 / 2,有简单的方法吗?你知道吗

简单的方法似乎不起作用,因为您不能引用value1值:

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

另一种方法是执行批处理作业,在自己的计算机上逐批拉入数据,这样我就可以检索a的值,然后更新b的值。我宁愿让服务器执行这个操作。你知道吗


Tags: 对象方法right数据库dbdictionarymongodb作业
2条回答

MongoDB没有此功能。您将不得不在批处理作业中执行此操作。如果您这样做了,我建议您在每次更新之间稍微休息一下,以便服务器也能正常执行应用程序。否则,可能会导致数据库读/写不足。当然,只有当你有上百万条记录的时候,这才是真正必要的。你知道吗

嘿,在俾蒙哥就这么干吧

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}})

相关问题 更多 >