복붙노트

[MONGODB] 그룹이없는 평균 집계 쿼리를 MongoDB를

MONGODB

그룹이없는 평균 집계 쿼리를 MongoDB를

나는 몽고의 통합 프레임 워크를 사용하여 전체 필드의 평균을 얻기 위해 노력하고 있어요. 그러나 내가 어떤 예를 찾을 수 없습니다 그 그룹 매개 변수없이 사용을.

나는 다음과 같은 문서 구조를 가지고 :

 {
      "_id" : ObjectId("5352703b61d2739b2ea44e4d"),
      "Semana" : "2014-02-23 - 2014-03-01",
      "bolsaDeValores" : "7",
      "bvc" : "8",
      "dollar" : "76",
      "ecopetrol" : "51",
      "dollarPrice" : "18"
 }

기본적으로 내가 뭘 원하는 (가 집계 프레임 워크보다 효율적으로 맵리 듀스를 사용하지 않고) 가장 빠른 방법으로 전체 모음에 대한 BVC 필드의 평균값 및 기타 숫자 하나를 얻을 수있다.

나는뿐만 아니라하지만 아무 소용이 제로 기준보다 더에 그룹에 노력했다 :

db.EvaluatedSentiments.aggregate([
    { "$group": { 
        "bvc" : {"$gt:0"}
        }, 
        {
            "bvc" : { "$avg" : "$bvc"}
        }
    }
])

나는 당신이 제공 할 수있는 모든 도움을 주셔서 감사합니다.

참고 : 몽고 집계 설명서

해결법

  1. ==============================

    1.첫 번째 숫자로 모든 상점 숫자 값. 그 후 당신은 평균을 계산하는 간단한 문을 사용할 수 있습니다 :

    첫 번째 숫자로 모든 상점 숫자 값. 그 후 당신은 평균을 계산하는 간단한 문을 사용할 수 있습니다 :

    db.collection.aggregate({ 
      "$group": {
        "_id": null, 
        "avg_bvc": { "$avg": "$bvc" } 
      } 
    })
    

    당신은 단순히 다른 숫자 필드에 대한 평균을 얻기 위해 더 $ 평균 집계 연산자를 사용할 수 있습니다 :

    db.collection.aggregate({ 
      "$group": {
        "_id": null, 
        "avg_bvc": { "$avg": "$bvc" }, 
        "avg_dollar": { "$avg": "$dollar" } 
      } 
    })
    
  2. ==============================

    2.그래서 데이터가 실제로 숫자 인 경우가 아니고, 당신의 의도는 당신이이 문서를 밖으로 "필터"를 순서대로 집계 파이프 라인에 $ 매치 문을 포함하는 값이 "0보다 크면"이 문서를 제외하다 :

    그래서 데이터가 실제로 숫자 인 경우가 아니고, 당신의 의도는 당신이이 문서를 밖으로 "필터"를 순서대로 집계 파이프 라인에 $ 매치 문을 포함하는 값이 "0보다 크면"이 문서를 제외하다 :

    db.EvaluatedSentiments.aggregate([
        { "$match": {
            "bvc": { "$gt": 0 }
        }},
        { "$group": {
            "_id": null,
            "bvc": { "$avg": "$bvc" }
        }}
    ])
    
  3. ==============================

    3.

    For more details please visit the following link: https://docs.mongodb.com/manual/reference/operator/aggregation/group/index.html
    
    db.EvaluatedSentiments.aggregate([
    {
    $group:{_id:null,avgbvc: {$avg:"$bvc"}}
    }
    ]).forEach(printjson)
    
  4. from https://stackoverflow.com/questions/23323515/mongo-average-aggregation-query-with-no-group by cc-by-sa and MIT license