-
Type:
Bug
-
Resolution: Done
-
Priority:
Major - P3
-
None
-
Affects Version/s: None
-
Component/s: Querying
-
None
-
ALL
-
None
-
0
-
None
-
None
-
None
-
None
-
None
-
None
In the sample session below, the document will be returned if you queried using the full range, but if you split the query into 2 parts, you will never get the document as part of the result.
> db.user.insert({ y: 1 }); > db.user.ensureIndex({ x: 1 }); > db.user.find({ x: { $gte: MinKey, $lt: MaxKey }}) { "_id" : ObjectId("53ee2d5188dc69e2793b705b"), "y" : 1 } > db.user.find({ x: { $gte: 0, $lt: MaxKey }}) > db.user.find({ x: { $gte: MinKey, $lt: 0 }}) > db.user.find({ x: { $gte: MinKey, $lt: MaxKey }}).explain() { "cursor" : "BtreeCursor x_1", "isMultiKey" : false, "n" : 1, "nscannedObjects" : 1, "nscanned" : 1, "nscannedObjectsAllPlans" : 1, "nscannedAllPlans" : 1, "scanAndOrder" : false, "indexOnly" : false, "nYields" : 0, "nChunkSkips" : 0, "millis" : 0, "indexBounds" : { "x" : [ [ { "$minElement" : 1 }, { "$maxElement" : 1 } ] ] }, "server" : "ren-desktop:27017" } > db.user.find({ x: { $gte: MinKey, $lt: 0 }}).explain() { "cursor" : "BtreeCursor x_1", "isMultiKey" : false, "n" : 0, "nscannedObjects" : 0, "nscanned" : 0, "nscannedObjectsAllPlans" : 0, "nscannedAllPlans" : 0, "scanAndOrder" : false, "indexOnly" : false, "nYields" : 0, "nChunkSkips" : 0, "millis" : 0, "indexBounds" : { "x" : [ [ -Infinity, 0 ] ] }, "server" : "ren-desktop:27017" } > db.user.find({ x: { $gte: 0, $lt: MaxKey }}).explain() { "cursor" : "BtreeCursor x_1", "isMultiKey" : false, "n" : 0, "nscannedObjects" : 0, "nscanned" : 0, "nscannedObjectsAllPlans" : 0, "nscannedAllPlans" : 0, "scanAndOrder" : false, "indexOnly" : false, "nYields" : 0, "nChunkSkips" : 0, "millis" : 0, "indexBounds" : { "x" : [ [ 0, Infinity ] ] }, "server" : "ren-desktop:27017" }