|
Turns out the above comparison is not meaningful, so I added a constant to all documents:
db.foo.update({},{$set:{c:1}},{multi:true})
|
And then tested equality matching against range matching:
> db.foo.find({n:{$gte:0}}).explain()
|
{
|
"cursor" : "BasicCursor",
|
"isMultiKey" : false,
|
"n" : 100000,
|
"nscannedObjects" : 100000,
|
"nscanned" : 100000,
|
"nscannedObjectsAllPlans" : 100000,
|
"nscannedAllPlans" : 100000,
|
"scanAndOrder" : false,
|
"indexOnly" : false,
|
"nYields" : 781,
|
"nChunkSkips" : 0,
|
"millis" : 35,
|
"server" : "tab:27017",
|
"filterSet" : false
|
}
|
> db.foo.find({c:1}).explain()
|
{
|
"cursor" : "BasicCursor",
|
"isMultiKey" : false,
|
"n" : 100000,
|
"nscannedObjects" : 100000,
|
"nscanned" : 100000,
|
"nscannedObjectsAllPlans" : 100000,
|
"nscannedAllPlans" : 100000,
|
"scanAndOrder" : false,
|
"indexOnly" : false,
|
"nYields" : 781,
|
"nChunkSkips" : 0,
|
"millis" : 34,
|
"server" : "tab:27017",
|
"filterSet" : false
|
}
|
|