python-3.x - 如何在 python 中运行 mongodb 查询
问题描述
我正在使用以下查询从collection
in获取数据mongodb
db.testcoll.aggregate([
{ $unwind :'$data'},
{ $match : {'type': 'data1', "my_id" : "44ef", 'data.time': { $gte : "2018-07-07 00:00:30" , $lte : "2018-07-08 00:57:30"} }},
{ $project : { _id:0, my_id: '$my_id', time : '$data.time', value : '$data.value'} }
])
在 中运行上述查询MongoDb
,我得到了适当的结果。现在我正在编写一个小python
脚本,我需要在其中运行相同的查询。
query = ([
{ '$unwind' :'$data'},
{ '$match' : {'type': 'data1', "my_id" : "44ef", 'data.time': { '$gte' : "2018-07-07 00:00:30" , '$lte' : "2018-07-08 00:57:30"} }},
{ '$project' : { '_id':0, 'my_id': '$my_id', 'time' : '$data.time', 'value' : '$data.value'} }
])
document = testcoll.find(query)
for i in document:
print(i)
它显示None
调试器中的文档值,因此引发错误:
TypeError: 'NoneType' object is not iterable
如何在 python 中运行查询。谢谢
解决方案
您可以在 python 中使用相同的 mongo 查询来运行
query = [
{ '$unwind' :'$data'},
{ '$match' : {'type': 'data1', "my_id" : "44ef", 'data.time': { '$gte' : "2018-07-07 00:00:30" , '$lte' : "2018-07-08 00:57:30"} }},
{ '$project' : { '_id':0, 'my_id': '$my_id', 'time' : '$data.time', 'value' : '$data.value'} }
]
document = testcoll.aggregate(query)
for i in document:
print(i)
推荐阅读
- python-3.x - np.nanstd 在 python 中返回 inf 值
- cmake - 在CMake中对数字列表进行数字排序
- reactjs - 使用 React useState hook 设置多个状态值
- node.js - 如何将 Svelte 应用程序放入 docker 容器中?
- machine-learning - 如何在测试数据上使用 Pipeline 和 GridSearch 模型?
- spring - 在repository.save 后未加载Manytoone 对象-急切的获取不起作用
- python - 计算部分列表出现次数的最快方法
- python - mysql.connector.errors.ProgrammingError:1064(42000):
- php - 怎样才能生成这种类型的链接?
- javascript - JS代码拉取Youtube Livestream Video ID