我的JSON文档(称为“我”)有子文档(称为“元素”)。 我正在循环这些子文档,并一次更新它们一个。然而,为了做到这一点(一旦我需要的值被计算出来),我有mongo扫描数据库中的所有文档,然后遍历所有的子文档,然后找到它需要更新的子文档。快速更新子文档的方式
我有重大的时间问题,因为我有〜3000文件,这需要约4分钟。 我想知道是否有更快的方法来做到这一点,没有mongo必须扫描所有的文件,但通过在循环内做到这一点。
下面是代码:
for i in db.stuff.find():
for element in i['counts']:
computed_value = element[a] + element[b]
db.stuff.update({'id':i['id'], 'counts.timestamp':element['timestamp']},
{'$set': {'counts.$.total':computed_value}})
我的“ID”,然后通过它的时间标记子文档(它是唯一的每个子文档)识别整个文档。我需要找到比这更快的方法。感谢您的帮助。
你需要更新每个文件N次(每个元素)?为什么不更新蟒蛇整个文档,然后做整体结构的单一db.stuff.update? –