Mongo Query - 如果数据为0或null,则返回文档

时间:2013-08-28 13:11:42

标签: mongodb

我的数据格式如下:

{
    "__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
}

但是通过上面的查询,当“type”= impressions的计数为0时,我没有得到日期结果(周号)。我应该如何修改mongo查询以获得计数0的结果??? p>

2 个答案:

答案 0 :(得分:0)

如果我正确理解了这个问题,你可以按照以下方式理解。

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

答案 1 :(得分:0)

最简单的选择是在代码中添加使用此查询结果的零。

MongoDB无法发明不存在的数据。例如,您希望它能够在多长时间内向前推进并创建零?