簡體   English   中英

如何用 mapReduce MongoDB 獲取數組的總和?

[英]How write get sum of array with mapReduce MongoDB?

給定以下數據庫模式:

{
    '_id': 5079,
    'name': 'Lincoln County', 
    'state': 'AR',
     'population': 13024,
    'cases': [{'date': '2020-03-16', 'count': 1}, {'date': '2020-03-22', 'count': 1}, 
              {'date': '2020-03-24', 'count': 1}, {'date': '2020-03-26', 'count': 2}], 
    'deaths': [{'date': '2020-03-27', 'count': 1}, {'date': '2020-04-02', 'count': 1}, 
               {'date': '2020-05-28', 'count': 2}, {'date': '2020-05-30', 'count': 1}] 
}

MongoDB mapReduce function 將生成每個州的 covid19 病例總數的集合。 為每個 state 及其 2 個字母的縮寫和所有 covid 案例生成一條記錄?

試試這個查詢:

db.collection.aggregate([
  {
    "$project": {
      "total": {
        "$sum": {
          "$map": {
            "input": "$cases",
            "as": "c",
            "in": "$$c.count"
          }
        }
      },
      "state": 1
    }
  }
])

這里的例子

該查詢使用$map創建一個包含來自cases.count的值的數組,然后$sum這些值。
此外,字段輸出是count ,其中包含$sum和 state 使用state: 1

暫無
暫無

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

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