我想投影一个集合,仅当某个字段在某个范围内时才应用导出值.
某种程度上:
db.workouts.aggregate({
$match: { user_id: ObjectId(".....") }
},
{
$project: {
'20': { $cond: [ {$gt: [ "$avg_intensity", 20]} , '$total_volume', 0] }
}
})
我只需要在平均强度在一定范围内时才能得到这个值.然后,我将根据投影结果进行分组和求和.
我试图做的是应用$gt和$lt过滤器,但没有太大成功.
db.workouts.aggregate(
{
$match: { user_id: ObjectId("....") }
},
{
$project: {
'20': { $cond: [ [{$gt: [ "$avg_intensity", 20]}, {$lt: [ "$avg_intensity", 25]}] , '$total_volume', 0] }
}
})
我如何应用$gt和$lt条件?