2014-03-30 6 views
0

를 조회하려면 내가 제공 date 범위 사이에 다음과 같은 모델의 평균 price을 반환 집계 프레임 워크를 사용하여이 MongoDB의 쿼리를 다시 작성할 수 있습니다 어떻게 방법 :MongoDB를 집계 프레임 워크 - 평균

모델을

var PriceSchema = new Schema({ 
    price: { 
     type: Number, 
     required: true 
    }, 
    date: { 
     type: Date, 
     required: true 
    } 
}; 

쿼리

exports.getPriceAverage = function(req, res, next) { 
    var start  = moment.utc('03-01-2012').startOf('day'); 
    var end   = moment.utc('03-01-2012').endOf('month') 

    // Aggregation Framework Query Here... 
    Price.find({ date: { $lt: end, $gt: start }}, function(err, priceAverage) { 
     // Return average price... 
    }); 
}; 

답변

2

집계를 사용하여 언급했지만 모든 결과를 클라이언트에 반환하는 find 함수를 사용하고 있습니다.

대신 $avgaggregate를 사용해야합니다 :

Price.aggregate([ 
    { $match: { date: { $lt: end, $gt: start } } }, 
    { $group: { _id: null, avgPrice: { $avg: '$price' } } } 

], function(err, results){ 
    // process the results (an array of JavaScript objects) 
});