【发布时间】:2020-12-29 10:32:46
【问题描述】:
我在 Mongo 的聚合函数方面需要你的帮助。
我有这样的聚合:
const likes = await this.aggregate([
{
$match: { post: postId },
},
{
$group: {
_id: '$likeType',
count: { $sum: 1 },
},
},
]);
它收集帖子的所有喜欢/不喜欢并返回:
[ { _id: 'pos', count: 40 }, { _id: 'neg', count: 3 } ]
我遇到了一个问题:如果只有一种喜欢(例如只有 'pos'),它会返回:
[ { _id: 'pos', count: 40 } ]
但我也需要这个数组来显示零值:
[ { _id: 'pos', count: 40 }, { _id: 'neg', count: 0 } ]
有没有办法为所有类型的_ids设置默认值?
我知道它找不到任何“否定”并且无法返回它们。所以我想设置默认值让系统知道,只有两种类型:'pos'和'neg'。
这种情况有解决办法吗?
谢谢!
【问题讨论】:
标签: javascript node.js mongodb mongoose mongoose-schema