복붙노트

[MONGODB] MongoDB의 합계 쿼리

MONGODB

MongoDB의 합계 쿼리

예를 들어 나는 MongoDB의에서 다음과 같은 데이터를 가지고 :

{ "_id" : ObjectId("524091f99c49c4c3f66b0e46"), "hour" : 10, "incoming", 100}
{ "_id" : ObjectId("5240a045dbeff33c7333aa51"), "hour" : 11, "incoming", 200}
{ "_id" : ObjectId("5240a2ecda0d37f35c618aca"), "hour" : 12, "incoming", 300}

나는이 사용 몽고 셸을 할 수있는 방법, (결과가 있어야한다 500) - 지금은 질의에 "12 SUM 수신 (11) 사이의 수를"싶어?

해결법

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

    1.llovet 제안으로, 통합 프레임 워크는가는 방법이다. 다음은 쿼리의 모습 내용은 다음과 같습니다

    llovet 제안으로, 통합 프레임 워크는가는 방법이다. 다음은 쿼리의 모습 내용은 다음과 같습니다

    db.CollectionNameGoesHere.aggregate({ $match: {
        $and: [
            { hour: { $gte: 11 } },
            { hour: { $lte: 12 } }
        ]
    } },
    { $group: { _id : null, sum : { $sum: "$incoming" } } });
    

    또한 전용과 같이 파이프 라인의 끝에 $ 프로젝트 연산자를 추가하여 합계를 포함하는 결과 문서를 형성 할 수 있습니다 :

    { $project: { _id: 0, sum: 1 } }
    
  2. ==============================

    2.몇 가지 예는 몽구스를 사용하는 경우 :

    몇 가지 예는 몽구스를 사용하는 경우 :

    Products.aggregate([ { $match: {} }, { $group:
      { _id : null, sum : { $sum: "$Price" } }
    }])
    .then(res => console.log(res[0].sum));
    

    ({$ 일치 : {}} 제거 할 수 있습니다.)

    Products.aggregate([{ $group:
      { _id : '$Category', sum : { $sum: "$Price" } }
    }])
    .then(res => console.log(res));
    
  3. from https://stackoverflow.com/questions/18969916/mongodb-sum-query by cc-by-sa and MIT license