【发布时间】:2014-06-08 16:08:58
【问题描述】:
我想投影一个集合,仅当字段在范围内时才应用导出值。
种类:
db.workouts.aggregate({
$match: { user_id: ObjectId(".....") }
},
{
$project: {
'20': { $cond: [ {$gt: [ "$avg_intensity", 20]} , '$total_volume', 0] }
}
})
仅当 avg_intensity 在某个范围内时,我才需要获取该值。然后我将对投影结果进行分组和求和。
我正在尝试做的是应用 $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 条件?
【问题讨论】:
标签: mongodb mongodb-query aggregation-framework