【发布时间】:2021-05-05 18:03:05
【问题描述】:
假设我在一个集合中有以下 5 个文档:
{"account_id": 11, "event": ISODate("2021-05-03T10:33:18.220Z")},
{"account_id": 11, "event": ISODate("2021-05-03T10:33:19.220Z")},
{"account_id": 11, "event": null},
{"account_id": 99, "event": ISODate("2021-05-03T10:33:20.220Z")},
{"account_id": 99, "event": null}
在我想检索的单个 aggregate 查询中:
-
acccount_id: 11的文档总数 (3) -
acccount_id: 11ANDevent不为空的文档总数 (2)
基本上,我正在寻找的结果是:
{ total: 3, with_event: 2 }
以下是满足上述第二点的代码。它匹配 account_id 和 event 类型 9,这是 Mongo 中的日期时间。如何扩展此代码以满足第 1 点?
mongo.accounts.aggregate([
{
"$match": {
"account_id": 11,
"event": {
"$type": 9
}
}
},
{
"$group": {
"_id": null,
"count": {
"$sum": 1
}
}
}
])
【问题讨论】: