[英]how to get array of fields in mongo aggregate
我正在使用 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 平均值? 請徹底解釋我是 mongo 聚合的新手。
$group
- 對所有文檔進行分組。
1.1. $avg
- 計算所有文檔的sessionDuration
的平均值。
db.collection.aggregate([
{
$group: {
_id: null,
avgSessionDuration: {
$avg: "$sessionDuration"
}
}
}
])
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.