pymongo:如何从 mongodb 的字段中获取多个结果?
Posted
技术标签:
【中文标题】pymongo:如何从 mongodb 的字段中获取多个结果?【英文标题】:pymongo : How can I get multiple results from filed in mongodb? 【发布时间】:2019-02-11 15:44:06 【问题描述】:我想用 python3 pymongo 获取由 'name' 创建的 'data' 项目中的每个 'ecg_raw'。
如果我知道 'name' 和 'time_info',我如何获得 4 个 ecg_raw 数据 which time_info == '2018-09-01 00:00:03'
我想获取每个 ecg_raw 数据,例如 [[8,2],[1,10],[9,4],[1,9]]
我试过了
db.g.find("data":"$elemMatch":"time_info":"2018-09-01 00:00:03","name":1,"data":"$elemMatch":"time_info":"2018-09-01 00:00:03")
但它只返回一个像底部这样的值。
'_id': ObjectId('5b90d401219e9c9f72cac8c4'), 'name': 'testDog3', 'data': ['time_info': '2018-09-01 00:00:03', 'ecg_raw': [8, 2]]
请帮帮我。
> db.g.find().pretty()
"_id" : ObjectId("5b90d401219e9c9f72cac8c4"),
"name" : "testDog3",
"data" : [
"time_info" : "2018-09-01 00:00:03",
"ecg_raw" : [
8,
2
]
,
"time_info" : "2018-09-01 00:00:03",
"ecg_raw" : [
1,
10
]
,
"time_info" : "2018-09-01 00:00:03",
"ecg_raw" : [
9,
4
]
,
"time_info" : "2018-09-01 00:00:03",
"ecg_raw" : [
1,
9
]
,
"time_info" : "2018-09-01 00:00:04",
"ecg_raw" : [
10,
6
]
,
"time_info" : "2018-09-01 00:00:04",
"ecg_raw" : [
1,
6
]
]
【问题讨论】:
【参考方案1】:试试这个。
聚合([$match:'name':'testDog3', "$unwind": "$data" , "$match": "data.time_info":"2018-09 -01 00:00:03"])
【讨论】:
对不起。它在 db.g.aggregate("$match":"data.$.time_info":"2018-09-01 00:00: 03") 聚合([$match:'name':'testDog3', "$unwind": "$data" , "$match": "data.time_info" :"2018-09-01 00:00:03"]) 解决了。非常感谢你。以上是关于pymongo:如何从 mongodb 的字段中获取多个结果?的主要内容,如果未能解决你的问题,请参考以下文章
如何使用 pymongo 在 mongodb 中重命名父字段名称和嵌套字段值?
使用 pyMongo 和 MongoEngine 从 MongoDb 列表中删除对象及其索引?
如何使用 flask_pymongo 将数据从 mongodb 显示到烧瓶模板?
MongoDB PyMongo - 创建索引并在两个字段中进行不区分大小写的搜索