首页 > 解决方案 > Pymongo:迭代字典列表的字典

问题描述

假设我有一个大集合,包括以下文档:

{"_id": 0, 
"name":"John Doe",
"items": [
     {"x":5,
      "y":8,
      "z":9},
     {"x":4,
      "y":2,
      "z":1},
     {"x":3,
      "y":5,
      "z":8}
]
}

我正在使用 pymongo 将集合提取到一个名为“data”的变量中,并尝试迭代这些项目以更新一些项目。我尝试使用以下代码打印这些值:

for i in data:
    for j in data[i].get("items"):
        pprint(j.get("x"))

它给出了一个错误:

pymongo.errors.InvalidOperation: cannot set options after executing query

即使我得到了这些项目,我也看不到更改数据的方法。为什么会发生这种情况,我如何遍历项目并更改它们的值?

标签: pythonmongodbpymongo

解决方案


数据库查询看起来如何?

尝试这样的迭代:

cursor = db.get_collection('some_collection').find()

for doc in cursor:
    for item in doc['items']:
        pprint(item.get('x'))

推荐阅读