Uploaded image for project: 'Core Server'
  1. Core Server
  2. SERVER-14915

Inconsistent query result for documents when an index for field it doesn't have is used

    • Type: Icon: Bug Bug
    • Resolution: Done
    • Priority: Icon: Major - P3 Major - P3
    • None
    • Affects Version/s: None
    • Component/s: Querying
    • Labels:
      None
    • ALL

      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"
      }
      

            Assignee:
            Unassigned Unassigned
            Reporter:
            randolph@mongodb.com Randolph Tan
            Votes:
            0 Vote for this issue
            Watchers:
            3 Start watching this issue

              Created:
              Updated:
              Resolved: