Thanks in advance. The only thing I can surmise is that I need to
index the "_entrance_ip".
TAKES SEVERAL MINUTES:
db.messages.group( { cond: {_timestamp_in_ms: {$gte :
Date.UTC(2011,0,16), $lt: Date.UTC(2011,0,17) }, "type" : "pageload",
"params[controller]" : "event", "params[action]" : "show" }, key:
{ "_entrance_ip" : true }, initial: { count : 0 }, reduce:
function(doc,out) { out.count++ } } ).length
WORKS AS EXPECTED (same condition as above):
db.messages.find( { "_timestamp_in_ms" : { $gte : Date.UTC(2011,0,16),
$lt: Date.UTC(2011,0,17) }, "type" : "pageload",
"params[controller]" : "event", "params[action]" : "show" }).count()
2122
WORKS AS EXPECTED:
db.messages.find( { "_timestamp_in_ms" : { $gte : Date.UTC(2011,0,16),
$lt: Date.UTC(2011,0,17) }, "type" : "pageload",
"params[controller]" : "event", "params[action]" : "show" }).explain()
{
"cursor" : "BtreeCursor upstream_campaign_reporting",
"nscanned" : 2122,
"nscannedObjects" : 2122,
"n" : 2122,
"millis" : 456,
"indexBounds" : {
"_timestamp_in_ms" : [
[
1295222400000,
1295136000000
]
],
"type" : [
[
"pageload",
"pageload"
]
],
"params[controller]" : [
[
"event",
"event"
]
],
"params[action]" : [
[
"show",
"show"
]
],
"_entrance_params[utm_source]" : [
[
{
"$minElement" : 1
},
{
"$maxElement" : 1
}
]
],
"_entrance_params[utm_campaign]" : [
[
{
"$minElement" : 1
},
{
"$maxElement" : 1
}
]
]