0

我的数据库示例:

{
    "_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还是直接提到的日期戳。请帮我解决这个问题

4

1 回答 1

0

我的 php 中有一个错误的函数,因此我在广告中获取了 ad_delay_time 的所有条目,在 ad_delay_time 中获取了广告条目。这是我在运行查询后看到的菜鸟错误:db.track.find({ad: "43200000", track_time: { $gte: ISODate("2012-12-18T00:00:00.000Z") }}) .count()。我真的为此道歉。

于 2012-12-20T06:45:19.367 回答