我有以下数据:
"request_time" : "Fri Mar 25 2011 17:14:53 GMT-0400 (EDT)"
使用以下查询
db.production.group({key:{"request_time.d": true},cond:{"action":"forward"},initial:{sum:0},reduce:function(doc,prev) {prev.sum += 1}})
出于某种原因,我的回复是空的。它没有区分我从MongoDB Docs中获取的“.d”符号。谁能告诉我为什么?
这是在Ubuntu 10.10上的mongo shell中测试的。
答案 0 :(得分:0)
您的“request_time”键只有一个字符串作为值。
如果您指的是mongoDB docs示例
{ domain: "www.mongodb.org"
, invoked_at: {d:"2009-11-03", t:"17:14:05"}
, response_time: 0.05
, http_action: "GET /display/DOCS/Aggregation"
}
和
db.test.group(
{ cond: {"invoked_at.d": {$gte: "2009-11", $lt: "2009-12"}}
....
然后请注意,在上面的代码中,“invoked_at”将map作为值,而map又有两个字段--d和t。