【发布时间】:2020-10-05 01:20:36
【问题描述】:
我有一个集合,其中大多数文档都有一个对象数组,我关心的属性是一个布尔值,我正在寻找一个总文档数,其中数组中的对象数具有属性设置为false,小于10次。
架构是这样的
let MatchSchema = new Schema({
home: {
squad: [ SquadSchema ]
},
away: {
squad: [ SquadSchema ]
},
});
let SquadSchema = new Schema({
check: Boolean
});
我一直在寻找一种方法来做到这一点,看起来聚合是要走的路,尽管我很难找到解决方案。看起来我可以使用它来获取每个 home.squad、away.squad 的大小以及每个文档的 id。
await Match.aggregate([
{
$project: {
"squadCountHome": {$size: "$home.squad"},
"squadCountAway": {$size: "$away.squad"},
}
}
]);
可以用aggregate来查看squad中的校验值是否小于10次,大于0次?
【问题讨论】:
-
$filter 会在这里工作吗?
-
谢谢,我认为 filer 正是我想要的。