Javascript Mongoose$组(聚合)不工作
我一辈子都不知道为什么这会返回一个空数组。我有mongoose v4.1.11,运行时:Javascript Mongoose$组(聚合)不工作,javascript,node.js,mongodb,mongoose,Javascript,Node.js,Mongodb,Mongoose,我一辈子都不知道为什么这会返回一个空数组。我有mongoose v4.1.11,运行时: db.getCollection('stats').find({user_id:ObjectId('56410153ba86a1e8227f2781'), year: '2015-16'}) 它返回5个结果 Stats.aggregate([ { $match: {user_id:'56410153ba86a1e8227f2781', year: '2015-16'}},
db.getCollection('stats').find({user_id:ObjectId('56410153ba86a1e8227f2781'), year: '2015-16'})
它返回5个结果
Stats.aggregate([
{ $match: {user_id:'56410153ba86a1e8227f2781', year: '2015-16'}},
{
$group: {
_id: null,
started: {$sum: "$goals"}
}
}
], function (err, results) {
console.info(results); //[] Empty array
});
我做错了吗?文档非常清楚地表明,您可以对\u id
使用null
统计模型
var Stats = new Schema({
game_id : {type: Schema.ObjectId, ref: "Games", default: null},
user_id : {type: Schema.ObjectId, ref: "Player", default: null},
week : Number,
leagueID : String,
year: String,
app : {type: Number, default: 1},
mins : {type: Number, default: 90},
goals :Number,
goal_ids : [{type: Schema.ObjectId, ref: "Goals"}],
assists :Number,
benchUnused :Number,
bench :Number,
rating :Number,
captain :Number,
cleanSheet :Number,
kitWash :Number,
ownGoal :Number,
oppoOwnGoal :Number,
pen :Number,
penCondeded :Number,
penMissed :Number,
penSaved:Number,
motm:Number,
redCard:Number,
yellowCard:Number,
secondYellowCard:Number,
started:Number,
subbedOff:Number,
subbedOn:Number,
pts:{type: Number, default: 0},
venue:String
})
mongoose.model('Stats', Stats);
你能给我们看一下
stats
文档吗?你确定goals
是一个有效字段吗?请至少提供一个示例文档。请参阅更新,我应该说我确定一切都正确Mongoose不会在聚合管道中“自动广播”架构类型。您需要手动强制转换ObjectId
。