我的数据格式如下:
{
"__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>
答案 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无法发明不存在的数据。例如,您希望它能够在多长时间内向前推进并创建零?