【发布时间】:2020-12-28 16:15:32
【问题描述】:
我有以下问题:
我有以下两种型号:
Assignment: {
_id,
isPublic: Boolean
}
Solution: {
_id,
totalTime: Number,
assignment: { type: Schema.Types.ObjectId, ref: 'Assignment' },
}
我想查询所有解决方案,按作业分组,但我只关心公开的作业 (isPublic === true)。
但我不知道在哪里进行该查询。你能帮帮我吗?
到目前为止,我的聚合如下所示:
{
$match: {
assignment: {
$exists: true,
$ne: null,
},
},
{
$group: {
_id: '$assignment',
totalTime: { $sum: '$totalTime' },
},
},
{
$sort: {
totalTime: -1,
},
}
}
这很好用,但是如何过滤我的结果以仅考虑公共作业?我发现的所有过滤器和查询方法似乎都只适用于find(),但不适用于聚合。
你有什么建议吗?
【问题讨论】:
标签: javascript mongodb mongoose aggregate