【发布时间】:2016-07-14 10:05:54
【问题描述】:
堆栈: + Mongoose 4.4.10(最后一个稳定版本)已经用旧版本测试过 + MongoDb 2.6.3
我在 mongodb 控制台中执行该函数,并成功重新
db.activities.aggregate(
{ $match : { 'organizer': ObjectId("5408e4609640de8768c1d212") } }
, { $group :
{ _id : "$organizer",
totalSwims: { $sum : 1 },
longestSwim : { $max: "$distance" },
moreDistanceSwim : { $max: "$duration" },
warmestWaterSwim : { $max: "$activityWeather.waterTemperature" },
coldestWaterSwim : { $min: "$activityWeather.waterTemperature" },
warmestSwim : { $max: "$activityWeather.temperature" },
coldestSwim : { $min: "$activityWeather.temperature" }}});
{ "_id" : ObjectId("5408e4609640de8768c1d212"), "totalSwims" : 50, "longestSwim" : 6512.997, "moreDistanceSwim" : "02:35", "warmestWaterSwim" : "22", "coldestWaterSwim" : " 22", "warmestSwim" : "15", "coldestSwim" : "15" }
但是如果我尝试通过 mongoose 总是返回一个空数组 [] 我已经有一些聚合函数运行良好,但不知道为什么那个不起作用。
activities.aggregate([
{ $match : { 'organizer': userId } },
{ $group : {
_id : "$organizer",
totalSwims: { $sum : 1 },
longestSwim : { $max: "$distance" },
moreDistanceSwim : { $max: "$duration" },
warmestWaterSwim : { $max: "$activityWeather.waterTemperature" },
coldestWaterSwim : { $min: "$activityWeather.waterTemperature" },
warmestSwim : { $max: "$activityWeather.temperature" },
coldestSwim : { $min: "$activityWeather.temperature" }
} } ]
, function(err, result){
if (err) {
console.error('Problem %s', err);
return next(err);
} else {
console.error('Result %j', result);
return next(null, result);
}
});
有什么想法吗?
谢谢
【问题讨论】: