我的数据库示例:
{
"_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 或直接提到的日期戳。请帮我解决这个问题
答案 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”)) }})。计数()即可。我真的为此道歉。