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