2013-08-28 65 views
4

我有以下格式的數據是:蒙戈查詢 - 返回文檔,如果數據爲0或空

{ 
    "__v" : 0, 
    "_id" : ObjectId("12367687"), 
    "xyzId" : "ADV_ID", 
    "date" : ISODate("2013-08-19T10:58:21.473Z"), 
    "gId" : "987654", 
    "type" : "checks" 
} 

對於上述數據,我必須每天繪製的圖表,使用每週,每月和每年的數據「created_on」字段並計入「類型」字段。我有以下部分工作的查詢。

 db.trackads.aggregate(
    {$match : {"gId" : "987654",type : 'checks'}}, 
    { $group : { _id : { "day" : {"$week" : "$date"}},cnt : {"$sum" : 1}}}); 

結果:

{ 
    "result" : [ 
     { 
      "_id" : { 
       "day" : 34 
      }, 
      "cnt" : 734 
     }, 
     { 
      "_id" : { 
       "day" : 33 
      }, 
      "cnt" : 349 
     } 
    ], 
    "ok" : 1 
} 

但與上面的查詢,我不明白日期的結果(周否),則計數「類型」 =印象是0。我應如何修改蒙戈查詢以獲得計數結果0 ???

回答

0

如果我正確地理解了這個問題,你可以這樣做,如下所示。

db.trackads.aggregate({$match:{"groupId":"520a077c62d4b3b00e008905",$or:[{type:{$exists:false}},{type:'impressions'}]}},{$group:{_id:{"day":{"$week":"$created_on"}},cnt:{"$sum":1}}}); 
+0

是這個答案意味着與一個不同的問題? –

0

最簡單的選擇是在消耗此查詢結果的代碼中添加零。

MongoDB不能發明不在那裏的數據。例如,你認爲它能創造零值多久?