簡體   English   中英

如何獲取mongo聚合中的字段數組

[英]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 聚合的新手。

  1. $group - 對所有文檔進行分組。

    1.1. $avg - 計算所有文檔的sessionDuration的平均值。

db.collection.aggregate([
  {
    $group: {
      _id: null,
      avgSessionDuration: {
        $avg: "$sessionDuration"
      }
    }
  }
])

演示 @ Mongo 游樂場

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM