adding projection causes multiKey index query fall back to collection scan

XMLWordPrintableJSON

    • ALL
    • None
    • None
    • None
    • None
    • None
    • None
    • None

      test@local(2.6.0-rc0) > db.multi.find({m:99999}).explain()
      {
      	"cursor" : "BtreeCursor m_1",
      	"isMultiKey" : true,
      	"n" : 0,
      	"nscannedObjects" : 0,
      	"nscanned" : 0,
      	"nscannedObjectsAllPlans" : 0,
      	"nscannedAllPlans" : 0,
      	"scanAndOrder" : false,
      	"indexOnly" : false,
      	"nYields" : 0,
      	"nChunkSkips" : 0,
      	"millis" : 0,
      	"indexBounds" : {
      		"m" : [
      			[
      				99999,
      				99999
      			]
      		]
      	},
      	"server" : "asyasmacbook.local:27017",
      	"filterSet" : false
      }
      test@local(2.6.0-rc0) > db.multi.find({m:99999},{_id:0,m:1}).explain()
      {
      	"cursor" : "BasicCursor",
      	"isMultiKey" : false,
      	"n" : 0,
      	"nscannedObjects" : 102,
      	"nscanned" : 102,
      	"nscannedObjectsAllPlans" : 105,
      	"nscannedAllPlans" : 105,
      	"scanAndOrder" : false,
      	"indexOnly" : false,
      	"nYields" : 0,
      	"nChunkSkips" : 0,
      	"millis" : 0,
      	"server" : "asyasmacbook.local:27017",
      	"filterSet" : false
      }
      test@local(2.6.0-rc0) > db.multi.find({m:99999},{_id:0,m:1}).explain(true)
      {
      	"cursor" : "BasicCursor",
      	"isMultiKey" : false,
      	"n" : 0,
      	"nscannedObjects" : 102,
      	"nscanned" : 102,
      	"nscannedObjectsAllPlans" : 105,
      	"nscannedAllPlans" : 105,
      	"scanAndOrder" : false,
      	"indexOnly" : false,
      	"nYields" : 0,
      	"nChunkSkips" : 0,
      	"millis" : 0,
      	"allPlans" : [
      		{
      			"cursor" : "BasicCursor",
      			"isMultiKey" : false,
      			"n" : 0,
      			"nscannedObjects" : 102,
      			"nscanned" : 102,
      			"scanAndOrder" : false,
      			"indexOnly" : false,
      			"nChunkSkips" : 0
      		},
      		{
      			"cursor" : "BtreeCursor m_1",
      			"isMultiKey" : true,
      			"n" : 3,
      			"nscannedObjects" : 3,
      			"nscanned" : 3,
      			"scanAndOrder" : false,
      			"indexOnly" : false,
      			"nChunkSkips" : 0,
      			"indexBounds" : {
      				"m" : [
      					[
      						1,
      						1
      					]
      				]
      			}
      		}
      	],
      	"server" : "asyasmacbook.local:27017",
      	"filterSet" : false,
      	"stats" : {
      		"type" : "PROJECTION",
      		"works" : 104,
      		"yields" : 0,
      		"unyields" : 0,
      		"invalidates" : 0,
      		"advanced" : 0,
      		"needTime" : 0,
      		"needFetch" : 0,
      		"isEOF" : 1,
      		"children" : [
      			{
      				"type" : "COLLSCAN",
      				"works" : 104,
      				"yields" : 0,
      				"unyields" : 0,
      				"invalidates" : 0,
      				"advanced" : 0,
      				"needTime" : 103,
      				"needFetch" : 0,
      				"isEOF" : 1,
      				"docsTested" : 102,
      				"children" : [ ]
      			}
      		]
      	}
      }
      

            Assignee:
            David Storch
            Reporter:
            Asya Kamsky
            Votes:
            0 Vote for this issue
            Watchers:
            5 Start watching this issue

              Created:
              Updated:
              Resolved: