python - 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
即使我得到了这些项目,我也看不到更改数据的方法。为什么会发生这种情况,我如何遍历项目并更改它们的值?
解决方案
数据库查询看起来如何?
尝试这样的迭代:
cursor = db.get_collection('some_collection').find()
for doc in cursor:
for item in doc['items']:
pprint(item.get('x'))
推荐阅读
- php - Cpanel 中的 Cron 作业 - 时区问题
- json - 如何将 db 结果行转换为嵌套的 json 格式
- react-native - 如何在本机反应中使用共享代码库制作多个应用程序变体?
- reactjs - 在 Create-React-App 测试套件中运行 axe-core 测试
- vbscript - 使用 WScript.shell 运行 sqlcmd - waitonreturn 不启动
- python - 如何使用 tensorflow 处理嵌套循环?
- python - Graphene-Python:从 Django 模型自动生成模式
- c# - System.Runtime.InteropServices.COMException:“已尝试多次添加相同的字段。” Outlook vsto addin c#中的错误
- python - Python 导入导致 [WinError 193] %1 不是有效的 Win32 应用程序,尽管导入在 `cmd` 中有效
- angular - 如何从角度 2 中的所有打开选项卡中重置 sessionStorage 项目?