var mongoose = require('mongoose');
mongoose.connect("mongodb://localhost:27017/test", function(err) {
if(err){
console.log('连接失败');
}else{
console.log('连接成功');
}
});
var schema = new mongoose.Schema({ num:Number, name: String, size: String},{ timestamps: true });
var MyModel = mongoose.model('MyModel', schema);
var group = {
key: {"name":true},
cond: {},
reduce: function(doc, out) {
out.count++;
out.total += doc.size;
},
initial: {
total: 0,
count: 0
},
finalize: function(out) {
out.avg = out.total / out.count;
}
};
//这里参数数量一定要保持一致,否则会报错
MyModel.collection.group(
group.key,
group.cond,
group.initial,
group.reduce,
group.finalize,
true,
function(err, reslut) {
console.log("result====",reslut)
})
使用aggregate
MyModel.aggregate([
{$match: {}},
{$group: {_id: "$name", total: {$sum: "$num"}}}
]).exec(function(err,reslut){
console.log(result)
})
另外,mongodb 更新后