我想弄清楚,如果我可以以某種方式結合$第一和$ ifnull或$ cond在MongoDB聚合方法。 假設下列文件:
{ "_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 }
乾杯,
使用$ max操作數爲我解決了它。聚合方法顯然認爲一個值大於null。這次真是萬分感謝。 – elynch 2014-09-01 14:05:36