[英]How do you return multiple results from a mongoDB aggregate() query?
这是一个运行匹配的查询,然后返回特定字段中唯一条目的数量:
db.sequences.aggregate([{$match: {id: 5}}, {$group : {_id : "$field"} }, {$group: {_id:1, count: {$sum : 1 }}}])
但是,如果我想返回多个值,例如原始匹配聚合中的所有文档的计数,原始匹配中的前50个文档,以及同一匹配组的字段2的唯一条目数,该怎么办?文件?
我能写出1个返回所有这些值的聚合查询吗?
你需要做两个单独的$group
阶段。 第一$group
由filed
字段,然后$push
所得文档转换成一个阵列,并且在同一时间累加count
从每个文档中,以获得总和。
db.sequences.aggregate(
[
{$match: {id: 5}},
{$group :
{
_id : "$field",
count: {$sum: 1}
}
},
{$group :
{
_id : null,
totalNumberOfMatches: {$sum: '$count'},
totalNumberOfUniqueMatches: {$sum: 1},
uniqueMatchesField:
{
$push:
{
field: '$_id',
count: '$count'
}
}
}
},
]
)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.