我尝试使用聚合来获取ObjectId字段和Date字段的某些特定结果。当我只使用ObjectId来匹配结果时,它可以正常工作,但在添加Date条件后,它只返回任何内容。 这是我的汇总代码:
FlowerAssignment.aggregate({
$match: {
class: new MongoTypes.ObjectId(current_class),
time: {
$lte: moment().startOf('month').toDate(),
$gte: moment().endOf('month').toDate()
}
}
})
.project({
student: 1,
name: '$studentInfo.name',
avatar: '$studentInfo.avatar',
flowerInfo: 1
}).group({
_id: '$student',
name: {
$first: '$name'
},
avatar: {
$first: '$avatar'
},
flowers: {
$sum: 1
}
}).exec(function (err, results) {});
比赛条件有什么不对......我真的没有想法......
答案 0 :(得分:1)
您的$match
对象包含互斥条款,除非它是一个数组,文档的time
字段不能同时在月初之前和在月底之后。
我假设你已经倒退了它应该是:
$match: {
class: new MongoTypes.ObjectId(current_class),
time: {
$gte: moment().startOf('month').toDate(),
$lte: moment().endOf('month').toDate()
}
}