|
It looks as though this issue can also be reproduced using $nin, with the exception that neither version uses an index by default (i.e., without a hint). 2.5 won't use the index even with the hint.
2.5.5-pre-
> db.c.insert({a:1})
|
Insert WriteResult({ "ok" : 1, "n" : 1 })
|
> db.c.insert({a:2})
|
Insert WriteResult({ "ok" : 1, "n" : 1 })
|
> db.c.ensureIndex({a:1})
|
> db.c.find({a:{$nin:[2,3,4]}}).explain()
|
{
|
"cursor" : "BasicCursor",
|
"n" : 1,
|
"nscannedObjects" : 2,
|
"nscanned" : 2,
|
"nscannedObjectsAllPlans" : 2,
|
"nscannedAllPlans" : 2,
|
"scanAndOrder" : false,
|
"indexOnly" : false,
|
"nYields" : 0,
|
"nChunkSkips" : 0,
|
"millis" : 0,
|
"server" : "10gencasvr:28000"
|
}
|
> db.c.find({a:{$nin:[2,3,4]}}).hint({a:1}).explain()
|
{
|
"cursor" : "BasicCursor",
|
"n" : 1,
|
"nscannedObjects" : 2,
|
"nscanned" : 2,
|
"nscannedObjectsAllPlans" : 2,
|
"nscannedAllPlans" : 2,
|
"scanAndOrder" : false,
|
"indexOnly" : false,
|
"nYields" : 0,
|
"nChunkSkips" : 0,
|
"millis" : 0,
|
"server" : "10gencasvr:28000"
|
}
|
> db.c.find({a:{$nin:[2,3,4]}}).hint({b:1}).explain()
|
{
|
"cursor" : "BasicCursor",
|
"n" : 1,
|
"nscannedObjects" : 2,
|
"nscanned" : 2,
|
"nscannedObjectsAllPlans" : 2,
|
"nscannedAllPlans" : 2,
|
"scanAndOrder" : false,
|
"indexOnly" : false,
|
"nYields" : 0,
|
"nChunkSkips" : 0,
|
"millis" : 0,
|
"server" : "10gencasvr:28000"
|
}
|
2.4.9-pre-
> db.c.insert({a:1})
|
> db.c.insert({a:2})
|
> db.c.ensureIndex({a:1})
|
> db.c.find({a:{$nin:[2,3,4]}}).explain()
|
{
|
"cursor" : "BasicCursor",
|
"isMultiKey" : false,
|
"n" : 1,
|
"nscannedObjects" : 2,
|
"nscanned" : 2,
|
"nscannedObjectsAllPlans" : 2,
|
"nscannedAllPlans" : 2,
|
"scanAndOrder" : false,
|
"indexOnly" : false,
|
"nYields" : 0,
|
"nChunkSkips" : 0,
|
"millis" : 0,
|
"indexBounds" : {
|
|
},
|
"server" : "10gencasvr:27017"
|
}
|
> db.c.find({a:{$nin:[2,3,4]}}).hint({a:1}).explain()
|
{
|
"cursor" : "BtreeCursor a_1",
|
"isMultiKey" : false,
|
"n" : 1,
|
"nscannedObjects" : 2,
|
"nscanned" : 2,
|
"nscannedObjectsAllPlans" : 2,
|
"nscannedAllPlans" : 2,
|
"scanAndOrder" : false,
|
"indexOnly" : false,
|
"nYields" : 0,
|
"nChunkSkips" : 0,
|
"millis" : 0,
|
"indexBounds" : {
|
"a" : [
|
[
|
{
|
"$minElement" : 1
|
},
|
{
|
"$maxElement" : 1
|
}
|
]
|
]
|
},
|
"server" : "10gencasvr:27017"
|
}
|
> db.c.find({a:{$nin:[2,3,4]}}).hint({b:1}).explain()
|
Tue Dec 3 13:20:31.836 error: { "$err" : "bad hint", "code" : 10113 } at src/mongo/shell/query.js:128
|
|