mongodb聚合不显示组字段数据

时间:2012-12-19 12:54:54

标签: mongodb group-by

我的数据库示例:

{
    "_id": {
        "$oid": "50c97f4f6e46e4b31634934"
    },
    "index": "6633333",
    "uniq_name": "com.test.fix",
    "ad": "com.ad",
    "ad_delay_time": "43200000",
    "track_time": {
        "$date": "2012-12-13T07:10:06.056Z"
    }
}

我的数据库是百万,当我尝试查询这些数据时:

db.track.aggregate( [ 
{ $match: { track_time: { $gte: ISODate("2012-12-18T00:00:00.000Z") }}},
{ $group: { _id: { ads:  "$ad" },
            count: { $sum: 1} } }
])

它不会向我显示不同的广告名称,而是显示不在广告中的数字位数,实际上是ad_delay_time。它显示ad_delay_time的所有值都显示为

"result" : [
    {
        "_id" : {
            "ads" : "43200000"
        },
        "count" : 2187735
    }
],
"ok" : 1

我不知道为什么这样查询。此外,我必须查询单日数据,所以我应该使用 $ gte 或直接提到的日期戳。请帮我解决这个问题

1 个答案:

答案 0 :(得分:0)

我的php功能错误,因此我在ad_delay_time中获取广告和广告条目中的所有ad_delay_time条目。这是我在运行查询后看到的noob错误: db.track.find({ad:“43200000”,track_time:{$ gte:ISODate(“2012-12-18T00:00:00.000Z”)) }})。计数()即可。我真的为此道歉。