Bạn có thể sử dụng $cond
( http://docs.mongodb.org/manual/reference /aggregation/cond/#exp._S_cond
) cho điều này:
db.c.aggregate( [
{ $project: {
k: '$k',
color: {
$cond: [
{ $eq: [ '$v', true ] },
'red',
'green'
]
}
} },
{ $group: {
_id: '$k',
vals: { '$push': '$color' }
} }
] )
Chỉnh sửa
Như một chỉnh sửa khác đã đề cập, nó thực sự cần $eq
làm việc kể từ {'$v':true}
không được giải thích như một biểu thức chính xác.