python - Pymongo 在多个集合上选择值,其中条件和按日期分组
问题描述
我是 mongodb 的新手,我使用 pymongo
有没有办法在特定日期与查询参数匹配的多个集合中选择特定字段,并按日期对记录进行分组?
示范:
我有 2 个收藏 A,B
A:
{
"_id" : ObjectId("7d663451d1e7242c4b68ekjd"),
"date" : "Mon Dec 27 2010 18:51:00 GMT+0000 (UTC)",
"value" : 1,
}
{
"_id" : ObjectId("qd663451d1e7242c4b68e001"),
"date" : "Mon Dec 27 2010 18:52:00 GMT+0000 (UTC)",
"value" : 2,
}
...
...
乙:
{
"_id" : ObjectId("td663451d1e7242c4b68eiu6"),
"date" : "Mon Dec 27 2010 18:51:00 GMT+0000 (UTC)",
"prediction_value" : 3,
}
{
"_id" : ObjectId("4d663451d1e7242c4b68e004"),
"date" : "Mon Dec 27 2010 18:52:00 GMT+0000 (UTC)",
"prediction_value" : 4,
}
...
...
例如:
如果我搜索日期 == Mon Dec 27 2010 18:52:00 GMT+0000 (UTC)
我需要在此日期之前获取 A.value 和 B.prediction_value 和组记录
结果如下:
"Mon Dec 27 2010 18:52:00 GMT+0000": [
{
"A" : 2
},
{
"B" : 4
}
]
我会非常感谢一些例子,因为我是一个新手。谢谢你的理解。
解决方案
您可以分别进行两个简单的查询:
date = 'Mon Dec 27 2010 18:52:00 GMT+0000'
A_doc = db.A.find_one({'date': date})
B_doc = db.B.find_one({'date': date})
A_value = A_doc['value']
B_prediction_value = B_doc['prediction_value']
# manipulate the data as you want
Mongo 不完全支持多集合查询,只有 $lookup 用于左外连接。但我认为在大多数情况下,做两个简单的查询比一个困难的查询更可取。检查此链接以获取更多信息:
https://docs.mongodb.com/manual/reference/operator/aggregation/lookup/
推荐阅读
- asp.net-core - Is authenticating a service-type user as an end user bad?
- javascript - Node Express joi validation failed when I added .when()
- java - 是否可以在后端使用多个框架(Spring boot + Django)?
- javascript - 多个 XMLHttpRequests - 从多个响应中检索数据
- reactjs - 仅将 React 与函数一起使用有什么好处吗?
- mongoose - Mongoose countDocuments() 返回查询
- blazor - Blazor WASM 在未通过身份验证时重定向到登录 - 不显示布局
- html - SVG 组子项未按预期转换
- c# - 使用 Entity Framework Core 重用查询
- powershell - Powershell:在 Active Directory 中检索 LogonDate