MongoDB 在单个文档中查询聚合
MongoDB querying aggregation in one single document
我有一个简短但重要的问题。我是 MongoDB 和查询的新手。
我的数据库如下所示:我的数据库中只存储了一个文档(抱歉模糊不清)。
文档由不同的字段组成:
- 两个模糊不重要
- 日期 -> 日期
- 实例 -> 带有嵌入式文档对象的数组;我们的实例有一个id,两个不重要的字段和一个代码。
现在我想查询我的实例数组中的对象有多少次具有组 "a" 和文本 "sample"?
这可能吗?
我只找到了计算有多少文档有东西的方法...
我正在使用 Mongo Compass,但我也可以使用 Pymongo、Mongoengine 或任何其他不同的工具来查询 mongodb。
提前致谢,如果您有更多问题,请发表评论!
你可以试试这个
db.collection.aggregate([
{
$unwind: "$instance"
},
{
$unwind: "$instance.label"
},
{
$match: {
"instance.label.group": "a",
"instance.label.text": "sample",
}
},
{
$group: {
_id: {
group: "$instance.label.group",
text: "$instance.label.text"
},
count: {
$sum: 1
}
}
}
])
我有一个简短但重要的问题。我是 MongoDB 和查询的新手。
我的数据库如下所示:我的数据库中只存储了一个文档(抱歉模糊不清)。
文档由不同的字段组成:
- 两个模糊不重要
- 日期 -> 日期
- 实例 -> 带有嵌入式文档对象的数组;我们的实例有一个id,两个不重要的字段和一个代码。
现在我想查询我的实例数组中的对象有多少次具有组 "a" 和文本 "sample"?
这可能吗?
我只找到了计算有多少文档有东西的方法...
我正在使用 Mongo Compass,但我也可以使用 Pymongo、Mongoengine 或任何其他不同的工具来查询 mongodb。
提前致谢,如果您有更多问题,请发表评论!
你可以试试这个
db.collection.aggregate([
{
$unwind: "$instance"
},
{
$unwind: "$instance.label"
},
{
$match: {
"instance.label.group": "a",
"instance.label.text": "sample",
}
},
{
$group: {
_id: {
group: "$instance.label.group",
text: "$instance.label.text"
},
count: {
$sum: 1
}
}
}
])