我使用的是Mongo聚合框架,假设我有这样的集合结构
{
{
_id: ObjectId(123)
name: john,
sessionDuration: 29
},
{
_id: ObjectId(456)
name: moore,
sessionDuration: 45
},
{
_id: ObjectId(789)
name: cary,
sessionDuration: 25
},
}
我想查询并创建一个管道,使其返回如下内容:
{
durationsArr: [29, 49, 25, '$sessionDuration_Field_From_Document' ];
}
我这样做是因为我想得到所有文档的平均持续时间,所以首先将所有文档添加到一个数组中,然后添加最后一个阶段,在那里我执行$avg
操作。
你知道我怎样才能得到sessionDurationField的数组吗?或者你有没有其他最好的方法来从集合中计算sessionDuration Average?请彻底解释我是mongo聚合的新手。
1条答案
按热度按时间xzv2uavs1#
$group
-对所有文档进行分组。1.1.
$avg
-计算所有文档的sessionDuration
平均值。Demo @ Mongo Playground