【发布时间】:2021-05-05 23:02:08
【问题描述】:
文档示例
{
_id: 1,
entity: 'Transaction',
approvals: [
{
userId: 1, // ObjectID
final: true,
approved: false,
date: ISODate('2021-01-01'),
},
{
userId: 1,
final: true,
approved: false,
date: ISODate('2021-02-01'),
}
]
},
{
_id: 2,
entity: 'Transaction',
approvals: [
{
userId: 1,
final: true,
approved: false,
date: ISODate('2021-01-01'),
},
{
userId: 1,
final: true,
approved: false,
date: ISODate('2021-02-01'),
}
]
},
{
_id: 3,
entity: 'Transaction',
approvals: [
{
userId: 1,
final: true,
approved: true,
date: ISODate('2021-01-01'),
},
{
userId: 2,
final: true,
approved: false,
date: ISODate('2021-02-01'),
}
]
},
{
_id: 4,
entity: 'Transaction',
approvals: [
{
userId: 1,
final: true,
approved: true,
date: ISODate('2021-01-01'),
},
{
userId: 2,
final: true,
approved: false,
date: ISODate('2021-02-01'),
}
]
}
我想按照以下标准对此类文档进行分组:
- 实体
- approvals.approved
- approvals.userId
- approvals.final
- approvals.date
approvals 数组可以包含多个值,可能未排序,因为我需要按日期对它们进行排序;如果批准数量不同 - 两个对象属于不同的组。 这可能与使用 Mongodb 4.2 设施有关吗?最有效的方法是什么?我在考虑生成哈希,但不确定 MongoDB 是否有这样的功能。
想要的结果:
{
ids: [1, 2],
entity: 'Transaction',
approvals: [
{
userId: 1,
final: true,
approved: false,
date: ISODate('2021-01-01'),
},
{
userId: 1,
final: true,
approved: false,
date: ISODate('2021-02-01'),
}
]
}
{
ids: [3, 4],
entity: 'Transaction',
approvals: [
{
userId: 1,
final: true,
approved: true,
date: ISODate('2021-01-01'),
},
{
userId: 2,
final: true,
approved: false,
date: ISODate('2021-02-01'),
}
]
}
【问题讨论】:
标签: mongodb aggregation