【发布时间】:2020-08-14 22:56:01
【问题描述】:
我有两个集合,具有以下结构和数据
Trx 集合
id | trxid | subitem | clazz
1 | 100 | 1 | A
2 | 100 | 2 | A
3 | 100 | 3 | B
4 | 200 | 1 | B
类集合
id | clazz | applicable
1 | A | y
2 | B | n
我正在寻找按 trxid 分组的输出,以及子项目的计数以及适用和不适用的子项目的计数。比如上面输出的数据
trxid | subitem count | applicable sub items count | non-applicable sub items count
100 | 3 | 2 | 1
200 | 1 | 0 | 1
我已经让子项目计数工作。我查看了“$lookup”,但不确定如何通过适用和不适用的子项计数来映射此计数,如上所示。任何指向上面的指针都非常感谢。
编辑:
集合中有 8000 多个文档,但以下查询仅返回一个子集。
db.trx.aggregate( [ { $group : { _id : "$trxid", count: { $sum : 1 } } } ])
[
{ _id: 'Trx100', count: 1 },
{ _id: 'Trx101', count: 1 },
{ _id: 'Trx102', count: 6 },
{ _id: 'Trx103', count: 5 },
{ _id: 'Trx104', count: 2 },
{ _id: 'Trx105', count: 2 },
{ _id: 'Trx106', count: 1 },
{ _id: 'Trx107', count: 1 },
{ _id: 'Trx108', count: 7 },
{ _id: 'Trx109', count: 26 },
{ _id: 'Trx110', count: 18 },
{ _id: 'Trx111', count: 5 },
{ _id: 'Trx112', count: 15 },
{ _id: 'Trx113', count: 1 },
{ _id: 'Trx114', count: 8 }
]
【问题讨论】:
标签: mongodb mongodb-query aggregation-framework