Message from discussion
Possible bug with Compound index containing Dates
Received: by 10.43.61.141 with SMTP id ww13mr822069icb.6.1348011531394;
Tue, 18 Sep 2012 16:38:51 -0700 (PDT)
X-BeenThere: mongodb-user@googlegroups.com
Received: by 10.50.178.73 with SMTP id cw9ls9095892igc.4.canary; Tue, 18 Sep
2012 16:38:43 -0700 (PDT)
Received: by 10.42.130.200 with SMTP id w8mr808278ics.15.1348011523384;
Tue, 18 Sep 2012 16:38:43 -0700 (PDT)
Received: by 10.50.82.36 with SMTP id f4msigy;
Tue, 18 Sep 2012 15:22:56 -0700 (PDT)
Received: by 10.68.238.201 with SMTP id vm9mr494767pbc.6.1348006976245;
Tue, 18 Sep 2012 15:22:56 -0700 (PDT)
Date: Tue, 18 Sep 2012 15:22:55 -0700 (PDT)
From: keith kirk <kmf...@gmail.com>
To: mongodb-user@googlegroups.com
Message-Id: <bf090dcf-5ed9-4053-9aa8-0858781acf0f@googlegroups.com>
Subject: Possible bug with Compound index containing Dates
MIME-Version: 1.0
Content-Type: multipart/mixed;
boundary="----=_Part_56_14075477.1348006975627"
------=_Part_56_14075477.1348006975627
Content-Type: multipart/alternative;
boundary="----=_Part_57_7800125.1348006975627"
------=_Part_57_7800125.1348006975627
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit
Ran into some issues with an aggregation query returning very slowly and
decided to run the $match through an explain - ended up with some very
weird results.
I'm running this query on a sharded collection, checking for a specific
site and first request time (by index / shard key) and filter the results
by a couple boolean flags. However, different site.id's causes query
optimizer to decide to only use the first part of my compound index and
wildcards the date, causing it to scan far more documents ( and shards )
than necessary.
If I supply a hint and specify my index, it works as expected, or if I
remove the boolean fields - it again works as expected. It seems isolated
to searching on those boolean flags, if I remove those and instead query
another field with a string, it again works.
Any ideas here? I don't believe you can pass a .hint() to an aggregation
query...
*First query ( expected results ):*
mongos> db.visit.find({ "site.id": 253, "frt": { $gte: new Date(2012, 08,
18 ) }, "test": false, "bot": false }).explain()
Tue Sep 18 15:05:56 08 is not a legal ECMA-262 octal constant (shell):1
{
"clusteredType" : "ParallelSort",
"shards" : {
"dynotrax1/s1.dynotrax:2100,s2.dynotrax:2100,s3.dynotrax:2100" : [
{
"cursor" : "BtreeCursor site.id_1_frt_1",
"isMultiKey" : false,
"n" : 31429,
"nscannedObjects" : 32230,
"nscanned" : 32230,
"nscannedObjectsAllPlans" : 32432,
"nscannedAllPlans" : 32432,
"scanAndOrder" : false,
"indexOnly" : false,
"nYields" : 81,
"nChunkSkips" : 0,
"millis" : 555,
"indexBounds" : {
"site.id" : [
[
253,
253
]
],
"frt" : [
[
ISODate("2012-09-18T07:00:00Z"),
ISODate("292278995-01--2147483647T07:12:56.808Z")
]
]
},
"server" : "ip-10-6-50-253:2100"
}
]
},
"cursor" : "BtreeCursor site.id_1_frt_1",
"n" : 31429,
"nChunkSkips" : 0,
"nYields" : 81,
"nscanned" : 32230,
"nscannedAllPlans" : 32432,
"nscannedObjects" : 32230,
"nscannedObjectsAllPlans" : 32432,
"millisShardTotal" : 555,
"millisShardAvg" : 555,
"numQueries" : 1,
"numShards" : 1,
"indexBounds" : {
"site.id" : [
[
253,
253
]
],
"frt" : [
[
ISODate("2012-09-18T07:00:00Z"),
ISODate("292278995-01--2147483647T07:12:56.808Z")
]
]
},
"millis" : 557
}
*This second query confuses me, changing the site.id value causes Mongo to
only use the first part of my compound index and wildcards the Date field:*
mongos> db.visit.find({ "site.id": 128, "frt": { $gte: new Date(2012, 08,
18 ) }, "ue": false, "bot": false }).explain()
Tue Sep 18 15:06:45 08 is not a legal ECMA-262 octal constant (shell):1
{
"clusteredType" : "ParallelSort",
"shards" : {
"dynotrax2/s1.dynotrax:2200,s2.dynotrax:2200,s3.dynotrax:2200" : [
{
"cursor" : "BtreeCursor site.id_1_lrt_-1",
"isMultiKey" : false,
"n" : 312,
"nscannedObjects" : 48710,
"nscanned" : 48710,
"nscannedObjectsAllPlans" : 49267,
"nscannedAllPlans" : 49267,
"scanAndOrder" : false,
"indexOnly" : false,
"nYields" : 433,
"nChunkSkips" : 0,
"millis" : 5152,
"indexBounds" : {
"site.id" : [
[
128,
128
]
],
"lrt" : [
[
{
"$maxElement" : 1
},
{
"$minElement" : 1
}
]
]
},
"server" : "ip-10-4-211-107:2200"
}
]
},
"cursor" : "BtreeCursor site.id_1_lrt_-1",
"n" : 312,
"nChunkSkips" : 0,
"nYields" : 433,
"nscanned" : 48710,
"nscannedAllPlans" : 49267,
"nscannedObjects" : 48710,
"nscannedObjectsAllPlans" : 49267,
"millisShardTotal" : 5152,
"millisShardAvg" : 5152,
"numQueries" : 1,
"numShards" : 1,
"indexBounds" : {
"site.id" : [
[
128,
128
]
],
"lrt" : [
[
{
"$maxElement" : 1
},
{
"$minElement" : 1
}
]
]
},
"millis" : 5208
}
*Last query, searching by the same site.id and filtering by another field,
non-boolean, it works:*
mongos> db.visit.find({ "site.id": 128, "frt": { $gte: new Date(2012, 08,
18 ) }, "tv": 1 }).explain()
Tue Sep 18 15:18:15 08 is not a legal ECMA-262 octal constant (shell):1
{
"clusteredType" : "ParallelSort",
"shards" : {
"dynotrax2/s1.dynotrax:2200,s2.dynotrax:2200,s3.dynotrax:2200" : [
{
"cursor" : "BtreeCursor site.id_1_frt_1",
"isMultiKey" : false,
"n" : 750,
"nscannedObjects" : 787,
"nscanned" : 787,
"nscannedObjectsAllPlans" : 989,
"nscannedAllPlans" : 989,
"scanAndOrder" : false,
"indexOnly" : false,
"nYields" : 0,
"nChunkSkips" : 0,
"millis" : 15,
"indexBounds" : {
"site.id" : [
[
128,
128
]
],
"frt" : [
[
ISODate("2012-09-18T07:00:00Z"),
ISODate("292278995-01--2147483647T07:12:56.808Z")
]
]
},
"server" : "ip-10-4-211-107:2200"
}
]
},
"cursor" : "BtreeCursor site.id_1_frt_1",
"n" : 750,
"nChunkSkips" : 0,
"nYields" : 0,
"nscanned" : 787,
"nscannedAllPlans" : 989,
"nscannedObjects" : 787,
"nscannedObjectsAllPlans" : 989,
"millisShardTotal" : 15,
"millisShardAvg" : 15,
"numQueries" : 1,
"numShards" : 1,
"indexBounds" : {
"site.id" : [
[
128,
128
]
],
"frt" : [
[
ISODate("2012-09-18T07:00:00Z"),
ISODate("292278995-01--2147483647T07:12:56.808Z")
]
]
},
"millis" : 17
}
*visit collection indexes: *
mongos> db.visit.getIndexes()
[
{
"v" : 1,
"key" : {
"_id" : 1
},
"ns" : "dynotrax.visit",
"name" : "_id_"
},
{
"v" : 1,
"key" : {
"site.id" : 1,
"frt" : 1
},
"ns" : "dynotrax.visit",
"name" : "site.id_1_frt_1"
},
{
"v" : 1,
"key" : {
"site.id" : 1,
"lrt" : -1
},
"ns" : "dynotrax.visit",
"name" : "site.id_1_lrt_-1"
}
]
------=_Part_57_7800125.1348006975627
Content-Type: text/html; charset=utf-8
Content-Transfer-Encoding: quoted-printable
Ran into some issues with an aggregation query returning very slowly and de=
cided to run the $match through an explain - ended up with some very weird =
results.<div>I'm running this query on a sharded collection, checking for a=
specific site and first request time (by index / shard key) and filter the=
results by a couple boolean flags. However, different site.id's caus=
es query optimizer to decide to only use the first part of my compound inde=
x and wildcards the date, causing it to scan far more documents ( and shard=
s ) than necessary.</div><div><br></div><div>If I supply a hint and specify=
my index, it works as expected, or if I remove the boolean fields - it aga=
in works as expected. It seems isolated to searching on those boolean=
flags, if I remove those and instead query another field with a string, it=
again works.</div><div><br></div><div>Any ideas here? I don't believ=
e you can pass a .hint() to an aggregation query...</div><div><br></div><di=
v><br></div><div><b>First query ( expected results ):</b></div><div><div>mo=
ngos> db.visit.find({ "site.id": 253, "frt": { $gte: new Date(2012, 08, =
18 ) }, "test": false, "bot": false }).explain()</div><div>Tue Sep 18 15:05=
:56 08 is not a legal ECMA-262 octal constant (shell):1</div><div>{</div><d=
iv><span class=3D"Apple-tab-span" style=3D"white-space:pre">=09</span>"clus=
teredType" : "ParallelSort",</div><div><span class=3D"Apple-tab-span" style=
=3D"white-space:pre">=09</span>"shards" : {</div><div><span class=3D"Apple-=
tab-span" style=3D"white-space:pre">=09=09</span>"dynotrax1/s1.dynotrax:210=
0,s2.dynotrax:2100,s3.dynotrax:2100" : [</div><div><span class=3D"Apple-tab=
-span" style=3D"white-space:pre">=09=09=09</span>{</div><div><span class=3D=
"Apple-tab-span" style=3D"white-space:pre">=09=09=09=09</span>"cursor" : "B=
treeCursor site.id_1_frt_1",</div><div><span class=3D"Apple-tab-span" style=
=3D"white-space:pre">=09=09=09=09</span>"isMultiKey" : false,</div><div><sp=
an class=3D"Apple-tab-span" style=3D"white-space:pre">=09=09=09=09</span>"n=
" : 31429,</div><div><span class=3D"Apple-tab-span" style=3D"white-space:pr=
e">=09=09=09=09</span>"nscannedObjects" : 32230,</div><div><span class=3D"A=
pple-tab-span" style=3D"white-space:pre">=09=09=09=09</span>"nscanned" : 32=
230,</div><div><span class=3D"Apple-tab-span" style=3D"white-space:pre">=09=
=09=09=09</span>"nscannedObjectsAllPlans" : 32432,</div><div><span class=3D=
"Apple-tab-span" style=3D"white-space:pre">=09=09=09=09</span>"nscannedAllP=
lans" : 32432,</div><div><span class=3D"Apple-tab-span" style=3D"white-spac=
e:pre">=09=09=09=09</span>"scanAndOrder" : false,</div><div><span class=3D"=
Apple-tab-span" style=3D"white-space:pre">=09=09=09=09</span>"indexOnly" : =
false,</div><div><span class=3D"Apple-tab-span" style=3D"white-space:pre">=
=09=09=09=09</span>"nYields" : 81,</div><div><span class=3D"Apple-tab-span"=
style=3D"white-space:pre">=09=09=09=09</span>"nChunkSkips" : 0,</div><div>=
<span class=3D"Apple-tab-span" style=3D"white-space:pre">=09=09=09=09</span=
>"millis" : 555,</div><div><span class=3D"Apple-tab-span" style=3D"white-sp=
ace:pre">=09=09=09=09</span>"indexBounds" : {</div><div><span class=3D"Appl=
e-tab-span" style=3D"white-space:pre">=09=09=09=09=09</span>"site.id" : [</=
div><div><span class=3D"Apple-tab-span" style=3D"white-space:pre">=09=09=09=
=09=09=09</span>[</div><div><span class=3D"Apple-tab-span" style=3D"white-s=
pace:pre">=09=09=09=09=09=09=09</span>253,</div><div><span class=3D"Apple-t=
ab-span" style=3D"white-space:pre">=09=09=09=09=09=09=09</span>253</div><di=
v><span class=3D"Apple-tab-span" style=3D"white-space:pre">=09=09=09=09=09=
=09</span>]</div><div><span class=3D"Apple-tab-span" style=3D"white-space:p=
re">=09=09=09=09=09</span>],</div><div><span class=3D"Apple-tab-span" style=
=3D"white-space:pre">=09=09=09=09=09</span>"frt" : [</div><div><span class=
=3D"Apple-tab-span" style=3D"white-space:pre">=09=09=09=09=09=09</span>[</d=
iv><div><span class=3D"Apple-tab-span" style=3D"white-space:pre">=09=09=09=
=09=09=09=09</span>ISODate("2012-09-18T07:00:00Z"),</div><div><span class=
=3D"Apple-tab-span" style=3D"white-space:pre">=09=09=09=09=09=09=09</span>I=
SODate("292278995-01--2147483647T07:12:56.808Z")</div><div><span class=3D"A=
pple-tab-span" style=3D"white-space:pre">=09=09=09=09=09=09</span>]</div><d=
iv><span class=3D"Apple-tab-span" style=3D"white-space:pre">=09=09=09=09=09=
</span>]</div><div><span class=3D"Apple-tab-span" style=3D"white-space:pre"=
>=09=09=09=09</span>},</div><div><span class=3D"Apple-tab-span" style=3D"wh=
ite-space:pre">=09=09=09=09</span>"server" : "ip-10-6-50-253:2100"</div><di=
v><span class=3D"Apple-tab-span" style=3D"white-space:pre">=09=09=09</span>=
}</div><div><span class=3D"Apple-tab-span" style=3D"white-space:pre">=09=09=
</span>]</div><div><span class=3D"Apple-tab-span" style=3D"white-space:pre"=
>=09</span>},</div><div><span class=3D"Apple-tab-span" style=3D"white-space=
:pre">=09</span>"cursor" : "BtreeCursor site.id_1_frt_1",</div><div><span c=
lass=3D"Apple-tab-span" style=3D"white-space:pre">=09</span>"n" : 31429,</d=
iv><div><span class=3D"Apple-tab-span" style=3D"white-space:pre">=09</span>=
"nChunkSkips" : 0,</div><div><span class=3D"Apple-tab-span" style=3D"white-=
space:pre">=09</span>"nYields" : 81,</div><div><span class=3D"Apple-tab-spa=
n" style=3D"white-space:pre">=09</span>"nscanned" : 32230,</div><div><span =
class=3D"Apple-tab-span" style=3D"white-space:pre">=09</span>"nscannedAllPl=
ans" : 32432,</div><div><span class=3D"Apple-tab-span" style=3D"white-space=
:pre">=09</span>"nscannedObjects" : 32230,</div><div><span class=3D"Apple-t=
ab-span" style=3D"white-space:pre">=09</span>"nscannedObjectsAllPlans" : 32=
432,</div><div><span class=3D"Apple-tab-span" style=3D"white-space:pre">=09=
</span>"millisShardTotal" : 555,</div><div><span class=3D"Apple-tab-span" s=
tyle=3D"white-space:pre">=09</span>"millisShardAvg" : 555,</div><div><span =
class=3D"Apple-tab-span" style=3D"white-space:pre">=09</span>"numQueries" :=
1,</div><div><span class=3D"Apple-tab-span" style=3D"white-space:pre">=09<=
/span>"numShards" : 1,</div><div><span class=3D"Apple-tab-span" style=3D"wh=
ite-space:pre">=09</span>"indexBounds" : {</div><div><span class=3D"Apple-t=
ab-span" style=3D"white-space:pre">=09=09</span>"site.id" : [</div><div><sp=
an class=3D"Apple-tab-span" style=3D"white-space:pre">=09=09=09</span>[</di=
v><div><span class=3D"Apple-tab-span" style=3D"white-space:pre">=09=09=09=
=09</span>253,</div><div><span class=3D"Apple-tab-span" style=3D"white-spac=
e:pre">=09=09=09=09</span>253</div><div><span class=3D"Apple-tab-span" styl=
e=3D"white-space:pre">=09=09=09</span>]</div><div><span class=3D"Apple-tab-=
span" style=3D"white-space:pre">=09=09</span>],</div><div><span class=3D"Ap=
ple-tab-span" style=3D"white-space:pre">=09=09</span>"frt" : [</div><div><s=
pan class=3D"Apple-tab-span" style=3D"white-space:pre">=09=09=09</span>[</d=
iv><div><span class=3D"Apple-tab-span" style=3D"white-space:pre">=09=09=09=
=09</span>ISODate("2012-09-18T07:00:00Z"),</div><div><span class=3D"Apple-t=
ab-span" style=3D"white-space:pre">=09=09=09=09</span>ISODate("292278995-01=
--2147483647T07:12:56.808Z")</div><div><span class=3D"Apple-tab-span" style=
=3D"white-space:pre">=09=09=09</span>]</div><div><span class=3D"Apple-tab-s=
pan" style=3D"white-space:pre">=09=09</span>]</div><div><span class=3D"Appl=
e-tab-span" style=3D"white-space:pre">=09</span>},</div><div><span class=3D=
"Apple-tab-span" style=3D"white-space:pre">=09</span>"millis" : 557</div><d=
iv>}</div><div><br></div><div><b>This second query confuses me, changing th=
e site.id value causes Mongo to only use the first part of my compound inde=
x and wildcards the Date field:</b></div><div><div>mongos> db.visit.find=
({ "site.id": 128, "frt": { $gte: new Date(2012, 08, 18 ) }, "ue": false, "=
bot": false }).explain()</div><div>Tue Sep 18 15:06:45 08 is not a legal EC=
MA-262 octal constant (shell):1</div><div>{</div><div><span class=3D"Apple-=
tab-span" style=3D"white-space:pre">=09</span>"clusteredType" : "ParallelSo=
rt",</div><div><span class=3D"Apple-tab-span" style=3D"white-space:pre">=09=
</span>"shards" : {</div><div><span class=3D"Apple-tab-span" style=3D"white=
-space:pre">=09=09</span>"dynotrax2/s1.dynotrax:2200,s2.dynotrax:2200,s3.dy=
notrax:2200" : [</div><div><span class=3D"Apple-tab-span" style=3D"white-sp=
ace:pre">=09=09=09</span>{</div><div><span class=3D"Apple-tab-span" style=
=3D"white-space:pre">=09=09=09=09</span>"cursor" : "BtreeCursor site.id_1_l=
rt_-1",</div><div><span class=3D"Apple-tab-span" style=3D"white-space:pre">=
=09=09=09=09</span>"isMultiKey" : false,</div><div><span class=3D"Apple-tab=
-span" style=3D"white-space:pre">=09=09=09=09</span>"n" : 312,</div><div><s=
pan class=3D"Apple-tab-span" style=3D"white-space:pre">=09=09=09=09</span>"=
nscannedObjects" : 48710,</div><div><span class=3D"Apple-tab-span" style=3D=
"white-space:pre">=09=09=09=09</span>"nscanned" : 48710,</div><div><span cl=
ass=3D"Apple-tab-span" style=3D"white-space:pre">=09=09=09=09</span>"nscann=
edObjectsAllPlans" : 49267,</div><div><span class=3D"Apple-tab-span" style=
=3D"white-space:pre">=09=09=09=09</span>"nscannedAllPlans" : 49267,</div><d=
iv><span class=3D"Apple-tab-span" style=3D"white-space:pre">=09=09=09=09</s=
pan>"scanAndOrder" : false,</div><div><span class=3D"Apple-tab-span" style=
=3D"white-space:pre">=09=09=09=09</span>"indexOnly" : false,</div><div><spa=
n class=3D"Apple-tab-span" style=3D"white-space:pre">=09=09=09=09</span>"nY=
ields" : 433,</div><div><span class=3D"Apple-tab-span" style=3D"white-space=
:pre">=09=09=09=09</span>"nChunkSkips" : 0,</div><div><span class=3D"Apple-=
tab-span" style=3D"white-space:pre">=09=09=09=09</span>"millis" : 5152,</di=
v><div><span class=3D"Apple-tab-span" style=3D"white-space:pre">=09=09=09=
=09</span>"indexBounds" : {</div><div><span class=3D"Apple-tab-span" style=
=3D"white-space:pre">=09=09=09=09=09</span>"site.id" : [</div><div><span cl=
ass=3D"Apple-tab-span" style=3D"white-space:pre">=09=09=09=09=09=09</span>[=
</div><div><span class=3D"Apple-tab-span" style=3D"white-space:pre">=09=09=
=09=09=09=09=09</span>128,</div><div><span class=3D"Apple-tab-span" style=
=3D"white-space:pre">=09=09=09=09=09=09=09</span>128</div><div><span class=
=3D"Apple-tab-span" style=3D"white-space:pre">=09=09=09=09=09=09</span>]</d=
iv><div><span class=3D"Apple-tab-span" style=3D"white-space:pre">=09=09=09=
=09=09</span>],</div><div><span class=3D"Apple-tab-span" style=3D"white-spa=
ce:pre">=09=09=09=09=09</span>"lrt" : [</div><div><span class=3D"Apple-tab-=
span" style=3D"white-space:pre">=09=09=09=09=09=09</span>[</div><div><span =
class=3D"Apple-tab-span" style=3D"white-space:pre">=09=09=09=09=09=09=09</s=
pan>{</div><div><span class=3D"Apple-tab-span" style=3D"white-space:pre">=
=09=09=09=09=09=09=09=09</span>"$maxElement" : 1</div><div><span class=3D"A=
pple-tab-span" style=3D"white-space:pre">=09=09=09=09=09=09=09</span>},</di=
v><div><span class=3D"Apple-tab-span" style=3D"white-space:pre">=09=09=09=
=09=09=09=09</span>{</div><div><span class=3D"Apple-tab-span" style=3D"whit=
e-space:pre">=09=09=09=09=09=09=09=09</span>"$minElement" : 1</div><div><sp=
an class=3D"Apple-tab-span" style=3D"white-space:pre">=09=09=09=09=09=09=09=
</span>}</div><div><span class=3D"Apple-tab-span" style=3D"white-space:pre"=
>=09=09=09=09=09=09</span>]</div><div><span class=3D"Apple-tab-span" style=
=3D"white-space:pre">=09=09=09=09=09</span>]</div><div><span class=3D"Apple=
-tab-span" style=3D"white-space:pre">=09=09=09=09</span>},</div><div><span =
class=3D"Apple-tab-span" style=3D"white-space:pre">=09=09=09=09</span>"serv=
er" : "ip-10-4-211-107:2200"</div><div><span class=3D"Apple-tab-span" style=
=3D"white-space:pre">=09=09=09</span>}</div><div><span class=3D"Apple-tab-s=
pan" style=3D"white-space:pre">=09=09</span>]</div><div><span class=3D"Appl=
e-tab-span" style=3D"white-space:pre">=09</span>},</div><div><span class=3D=
"Apple-tab-span" style=3D"white-space:pre">=09</span>"cursor" : "BtreeCurso=
r site.id_1_lrt_-1",</div><div><span class=3D"Apple-tab-span" style=3D"whit=
e-space:pre">=09</span>"n" : 312,</div><div><span class=3D"Apple-tab-span" =
style=3D"white-space:pre">=09</span>"nChunkSkips" : 0,</div><div><span clas=
s=3D"Apple-tab-span" style=3D"white-space:pre">=09</span>"nYields" : 433,</=
div><div><span class=3D"Apple-tab-span" style=3D"white-space:pre">=09</span=
>"nscanned" : 48710,</div><div><span class=3D"Apple-tab-span" style=3D"whit=
e-space:pre">=09</span>"nscannedAllPlans" : 49267,</div><div><span class=3D=
"Apple-tab-span" style=3D"white-space:pre">=09</span>"nscannedObjects" : 48=
710,</div><div><span class=3D"Apple-tab-span" style=3D"white-space:pre">=09=
</span>"nscannedObjectsAllPlans" : 49267,</div><div><span class=3D"Apple-ta=
b-span" style=3D"white-space:pre">=09</span>"millisShardTotal" : 5152,</div=
><div><span class=3D"Apple-tab-span" style=3D"white-space:pre">=09</span>"m=
illisShardAvg" : 5152,</div><div><span class=3D"Apple-tab-span" style=3D"wh=
ite-space:pre">=09</span>"numQueries" : 1,</div><div><span class=3D"Apple-t=
ab-span" style=3D"white-space:pre">=09</span>"numShards" : 1,</div><div><sp=
an class=3D"Apple-tab-span" style=3D"white-space:pre">=09</span>"indexBound=
s" : {</div><div><span class=3D"Apple-tab-span" style=3D"white-space:pre">=
=09=09</span>"site.id" : [</div><div><span class=3D"Apple-tab-span" style=
=3D"white-space:pre">=09=09=09</span>[</div><div><span class=3D"Apple-tab-s=
pan" style=3D"white-space:pre">=09=09=09=09</span>128,</div><div><span clas=
s=3D"Apple-tab-span" style=3D"white-space:pre">=09=09=09=09</span>128</div>=
<div><span class=3D"Apple-tab-span" style=3D"white-space:pre">=09=09=09</sp=
an>]</div><div><span class=3D"Apple-tab-span" style=3D"white-space:pre">=09=
=09</span>],</div><div><span class=3D"Apple-tab-span" style=3D"white-space:=
pre">=09=09</span>"lrt" : [</div><div><span class=3D"Apple-tab-span" style=
=3D"white-space:pre">=09=09=09</span>[</div><div><span class=3D"Apple-tab-s=
pan" style=3D"white-space:pre">=09=09=09=09</span>{</div><div><span class=
=3D"Apple-tab-span" style=3D"white-space:pre">=09=09=09=09=09</span>"$maxEl=
ement" : 1</div><div><span class=3D"Apple-tab-span" style=3D"white-space:pr=
e">=09=09=09=09</span>},</div><div><span class=3D"Apple-tab-span" style=3D"=
white-space:pre">=09=09=09=09</span>{</div><div><span class=3D"Apple-tab-sp=
an" style=3D"white-space:pre">=09=09=09=09=09</span>"$minElement" : 1</div>=
<div><span class=3D"Apple-tab-span" style=3D"white-space:pre">=09=09=09=09<=
/span>}</div><div><span class=3D"Apple-tab-span" style=3D"white-space:pre">=
=09=09=09</span>]</div><div><span class=3D"Apple-tab-span" style=3D"white-s=
pace:pre">=09=09</span>]</div><div><span class=3D"Apple-tab-span" style=3D"=
white-space:pre">=09</span>},</div><div><span class=3D"Apple-tab-span" styl=
e=3D"white-space:pre">=09</span>"millis" : 5208</div><div>}</div></div><div=
><br></div><div><b>Last query, searching by the same site.id and filtering =
by another field, non-boolean, it works:</b></div><div><div>mongos> db.v=
isit.find({ "site.id": 128, "frt": { $gte: new Date(2012, 08, 18 ) }, "tv":=
1 }).explain()</div><div>Tue Sep 18 15:18:15 08 is not a legal ECMA-262 oc=
tal constant (shell):1</div><div>{</div><div><span class=3D"Apple-tab-span"=
style=3D"white-space:pre">=09</span>"clusteredType" : "ParallelSort",</div=
><div><span class=3D"Apple-tab-span" style=3D"white-space:pre">=09</span>"s=
hards" : {</div><div><span class=3D"Apple-tab-span" style=3D"white-space:pr=
e">=09=09</span>"dynotrax2/s1.dynotrax:2200,s2.dynotrax:2200,s3.dynotrax:22=
00" : [</div><div><span class=3D"Apple-tab-span" style=3D"white-space:pre">=
=09=09=09</span>{</div><div><span class=3D"Apple-tab-span" style=3D"white-s=
pace:pre">=09=09=09=09</span>"cursor" : "BtreeCursor site.id_1_frt_1",</div=
><div><span class=3D"Apple-tab-span" style=3D"white-space:pre">=09=09=09=09=
</span>"isMultiKey" : false,</div><div><span class=3D"Apple-tab-span" style=
=3D"white-space:pre">=09=09=09=09</span>"n" : 750,</div><div><span class=3D=
"Apple-tab-span" style=3D"white-space:pre">=09=09=09=09</span>"nscannedObje=
cts" : 787,</div><div><span class=3D"Apple-tab-span" style=3D"white-space:p=
re">=09=09=09=09</span>"nscanned" : 787,</div><div><span class=3D"Apple-tab=
-span" style=3D"white-space:pre">=09=09=09=09</span>"nscannedObjectsAllPlan=
s" : 989,</div><div><span class=3D"Apple-tab-span" style=3D"white-space:pre=
">=09=09=09=09</span>"nscannedAllPlans" : 989,</div><div><span class=3D"App=
le-tab-span" style=3D"white-space:pre">=09=09=09=09</span>"scanAndOrder" : =
false,</div><div><span class=3D"Apple-tab-span" style=3D"white-space:pre">=
=09=09=09=09</span>"indexOnly" : false,</div><div><span class=3D"Apple-tab-=
span" style=3D"white-space:pre">=09=09=09=09</span>"nYields" : 0,</div><div=
><span class=3D"Apple-tab-span" style=3D"white-space:pre">=09=09=09=09</spa=
n>"nChunkSkips" : 0,</div><div><span class=3D"Apple-tab-span" style=3D"whit=
e-space:pre">=09=09=09=09</span>"millis" : 15,</div><div><span class=3D"App=
le-tab-span" style=3D"white-space:pre">=09=09=09=09</span>"indexBounds" : {=
</div><div><span class=3D"Apple-tab-span" style=3D"white-space:pre">=09=09=
=09=09=09</span>"site.id" : [</div><div><span class=3D"Apple-tab-span" styl=
e=3D"white-space:pre">=09=09=09=09=09=09</span>[</div><div><span class=3D"A=
pple-tab-span" style=3D"white-space:pre">=09=09=09=09=09=09=09</span>128,</=
div><div><span class=3D"Apple-tab-span" style=3D"white-space:pre">=09=09=09=
=09=09=09=09</span>128</div><div><span class=3D"Apple-tab-span" style=3D"wh=
ite-space:pre">=09=09=09=09=09=09</span>]</div><div><span class=3D"Apple-ta=
b-span" style=3D"white-space:pre">=09=09=09=09=09</span>],</div><div><span =
class=3D"Apple-tab-span" style=3D"white-space:pre">=09=09=09=09=09</span>"f=
rt" : [</div><div><span class=3D"Apple-tab-span" style=3D"white-space:pre">=
=09=09=09=09=09=09</span>[</div><div><span class=3D"Apple-tab-span" style=
=3D"white-space:pre">=09=09=09=09=09=09=09</span>ISODate("2012-09-18T07:00:=
00Z"),</div><div><span class=3D"Apple-tab-span" style=3D"white-space:pre">=
=09=09=09=09=09=09=09</span>ISODate("292278995-01--2147483647T07:12:56.808Z=
")</div><div><span class=3D"Apple-tab-span" style=3D"white-space:pre">=09=
=09=09=09=09=09</span>]</div><div><span class=3D"Apple-tab-span" style=3D"w=
hite-space:pre">=09=09=09=09=09</span>]</div><div><span class=3D"Apple-tab-=
span" style=3D"white-space:pre">=09=09=09=09</span>},</div><div><span class=
=3D"Apple-tab-span" style=3D"white-space:pre">=09=09=09=09</span>"server" :=
"ip-10-4-211-107:2200"</div><div><span class=3D"Apple-tab-span" style=3D"w=
hite-space:pre">=09=09=09</span>}</div><div><span class=3D"Apple-tab-span" =
style=3D"white-space:pre">=09=09</span>]</div><div><span class=3D"Apple-tab=
-span" style=3D"white-space:pre">=09</span>},</div><div><span class=3D"Appl=
e-tab-span" style=3D"white-space:pre">=09</span>"cursor" : "BtreeCursor sit=
e.id_1_frt_1",</div><div><span class=3D"Apple-tab-span" style=3D"white-spac=
e:pre">=09</span>"n" : 750,</div><div><span class=3D"Apple-tab-span" style=
=3D"white-space:pre">=09</span>"nChunkSkips" : 0,</div><div><span class=3D"=
Apple-tab-span" style=3D"white-space:pre">=09</span>"nYields" : 0,</div><di=
v><span class=3D"Apple-tab-span" style=3D"white-space:pre">=09</span>"nscan=
ned" : 787,</div><div><span class=3D"Apple-tab-span" style=3D"white-space:p=
re">=09</span>"nscannedAllPlans" : 989,</div><div><span class=3D"Apple-tab-=
span" style=3D"white-space:pre">=09</span>"nscannedObjects" : 787,</div><di=
v><span class=3D"Apple-tab-span" style=3D"white-space:pre">=09</span>"nscan=
nedObjectsAllPlans" : 989,</div><div><span class=3D"Apple-tab-span" style=
=3D"white-space:pre">=09</span>"millisShardTotal" : 15,</div><div><span cla=
ss=3D"Apple-tab-span" style=3D"white-space:pre">=09</span>"millisShardAvg" =
: 15,</div><div><span class=3D"Apple-tab-span" style=3D"white-space:pre">=
=09</span>"numQueries" : 1,</div><div><span class=3D"Apple-tab-span" style=
=3D"white-space:pre">=09</span>"numShards" : 1,</div><div><span class=3D"Ap=
ple-tab-span" style=3D"white-space:pre">=09</span>"indexBounds" : {</div><d=
iv><span class=3D"Apple-tab-span" style=3D"white-space:pre">=09=09</span>"s=
ite.id" : [</div><div><span class=3D"Apple-tab-span" style=3D"white-space:p=
re">=09=09=09</span>[</div><div><span class=3D"Apple-tab-span" style=3D"whi=
te-space:pre">=09=09=09=09</span>128,</div><div><span class=3D"Apple-tab-sp=
an" style=3D"white-space:pre">=09=09=09=09</span>128</div><div><span class=
=3D"Apple-tab-span" style=3D"white-space:pre">=09=09=09</span>]</div><div><=
span class=3D"Apple-tab-span" style=3D"white-space:pre">=09=09</span>],</di=
v><div><span class=3D"Apple-tab-span" style=3D"white-space:pre">=09=09</spa=
n>"frt" : [</div><div><span class=3D"Apple-tab-span" style=3D"white-space:p=
re">=09=09=09</span>[</div><div><span class=3D"Apple-tab-span" style=3D"whi=
te-space:pre">=09=09=09=09</span>ISODate("2012-09-18T07:00:00Z"),</div><div=
><span class=3D"Apple-tab-span" style=3D"white-space:pre">=09=09=09=09</spa=
n>ISODate("292278995-01--2147483647T07:12:56.808Z")</div><div><span class=
=3D"Apple-tab-span" style=3D"white-space:pre">=09=09=09</span>]</div><div><=
span class=3D"Apple-tab-span" style=3D"white-space:pre">=09=09</span>]</div=
><div><span class=3D"Apple-tab-span" style=3D"white-space:pre">=09</span>},=
</div><div><span class=3D"Apple-tab-span" style=3D"white-space:pre">=09</sp=
an>"millis" : 17</div><div>}</div><div style=3D"font-weight: bold; "><br></=
div></div><div><b>visit collection indexes: </b></div></div><div><div>=
mongos> db.visit.getIndexes()</div><div>[</div><div><span class=3D"Apple=
-tab-span" style=3D"white-space:pre">=09</span>{</div><div><span class=3D"A=
pple-tab-span" style=3D"white-space:pre">=09=09</span>"v" : 1,</div><div><s=
pan class=3D"Apple-tab-span" style=3D"white-space:pre">=09=09</span>"key" :=
{</div><div><span class=3D"Apple-tab-span" style=3D"white-space:pre">=09=
=09=09</span>"_id" : 1</div><div><span class=3D"Apple-tab-span" style=3D"wh=
ite-space:pre">=09=09</span>},</div><div><span class=3D"Apple-tab-span" sty=
le=3D"white-space:pre">=09=09</span>"ns" : "dynotrax.visit",</div><div><spa=
n class=3D"Apple-tab-span" style=3D"white-space:pre">=09=09</span>"name" : =
"_id_"</div><div><span class=3D"Apple-tab-span" style=3D"white-space:pre">=
=09</span>},</div><div><span class=3D"Apple-tab-span" style=3D"white-space:=
pre">=09</span>{</div><div><span class=3D"Apple-tab-span" style=3D"white-sp=
ace:pre">=09=09</span>"v" : 1,</div><div><span class=3D"Apple-tab-span" sty=
le=3D"white-space:pre">=09=09</span>"key" : {</div><div><span class=3D"Appl=
e-tab-span" style=3D"white-space:pre">=09=09=09</span>"site.id" : 1,</div><=
div><span class=3D"Apple-tab-span" style=3D"white-space:pre">=09=09=09</spa=
n>"frt" : 1</div><div><span class=3D"Apple-tab-span" style=3D"white-space:p=
re">=09=09</span>},</div><div><span class=3D"Apple-tab-span" style=3D"white=
-space:pre">=09=09</span>"ns" : "dynotrax.visit",</div><div><span class=3D"=
Apple-tab-span" style=3D"white-space:pre">=09=09</span>"name" : "site.id_1_=
frt_1"</div><div><span class=3D"Apple-tab-span" style=3D"white-space:pre">=
=09</span>},</div><div><span class=3D"Apple-tab-span" style=3D"white-space:=
pre">=09</span>{</div><div><span class=3D"Apple-tab-span" style=3D"white-sp=
ace:pre">=09=09</span>"v" : 1,</div><div><span class=3D"Apple-tab-span" sty=
le=3D"white-space:pre">=09=09</span>"key" : {</div><div><span class=3D"Appl=
e-tab-span" style=3D"white-space:pre">=09=09=09</span>"site.id" : 1,</div><=
div><span class=3D"Apple-tab-span" style=3D"white-space:pre">=09=09=09</spa=
n>"lrt" : -1</div><div><span class=3D"Apple-tab-span" style=3D"white-space:=
pre">=09=09</span>},</div><div><span class=3D"Apple-tab-span" style=3D"whit=
e-space:pre">=09=09</span>"ns" : "dynotrax.visit",</div><div><span class=3D=
"Apple-tab-span" style=3D"white-space:pre">=09=09</span>"name" : "site.id_1=
_lrt_-1"</div><div><span class=3D"Apple-tab-span" style=3D"white-space:pre"=
>=09</span>}</div><div>]</div><div style=3D"font-weight: bold; "><br></div>=
</div>
------=_Part_57_7800125.1348006975627--
------=_Part_56_14075477.1348006975627--