【发布时间】:2014-09-01 20:09:14
【问题描述】:
我想弄清楚是否可以在 mongodb 聚合方法中以某种方式组合 $first 和 $ifnull 或 $cond。 假设以下文件:
{ "_id" : 1, "item" : "box" , "code" : null }
{ "_id" : 2, "item" : "box" , "code" : "abcde" }
{ "_id" : 3, "item" : "box" , "code" : "abcde" }
{ "_id" : 4, "item" : "box" , "code" : null }
然后我运行以下聚合方法将文档分组在一起:
db.items.aggregate([{
$group : {
_id : '$item',
code : { $first : '$code' }
}
}])
我的聚合结果是:
{ "result" : [ { "_id" : "box", "code" : null } ], "ok" : 1 }
我想知道是否有一种方法可以将 $first 操作数与 $ifnull 或 $cond 组合以获得不为空的代码字段。所以我的结果应该是这样的:
{ "result" : [ { "_id" : "box", "code" : 'abcde' } ], "ok" : 1 }
干杯,
【问题讨论】:
标签: mongodb mongodb-query aggregation-framework