【发布时间】:2021-12-21 05:36:19
【问题描述】:
我有这样的收藏
| User | Receiver | IsRead |
|---|---|---|
| A | B | false |
| B | A | false |
| A | B | false |
| A | C | false |
| C | A | false |
如何按用户和接收者分组以获得这样的结果
| Combined Field | Messages |
|---|---|
| AB OR BA | 3 |
| AC OR CA | 2 |
试过了
$group: {
_id: {$or: [{userId: "$recipientId", recipientId: "$userId"}, {userId: "$userId", recipientId: "$recipientId"}]},
messages: {$sum: {$cond: [{$eq: ['$isRead', false]}, 1, 0]}} // count
}
【问题讨论】:
标签: mongodb group-by aggregation