abhishekkuamr

Index Bounds not getting correctly used

May 25th, 2013
82
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. Mongo > db.test.find()
  2. { "_id" : ObjectId("519ef9b9099b3346085145af"), "c" : 1, "d" : 1 }
  3. { "_id" : ObjectId("519ef9bc099b3346085145b0"), "c" : 2, "d" : 2 }
  4. { "_id" : ObjectId("519efa29099b3346085145b3"), "c" : 2, "d" : [ 3, 4, 5 ] }
  5. { "_id" : ObjectId("519efec6099b3346085145b5"), "c" : 3, "d" : [ 3, 4, 5 ] }
  6.  
  7. Mongo > db.test.ensureIndex({ d : 1, c : 1 })
  8. Mongo > db.test.find({d : 4, c : {$gte : 1, $lte : 2}}).explain()   // check index bounds, not as expected
  9. {
  10.     "cursor" : "BtreeCursor d_1_c_1",
  11.     "isMultiKey" : true,
  12.     "n" : 1,
  13.     "nscannedObjects" : 1,
  14.     "nscanned" : 1,
  15.     "nscannedObjectsAllPlans" : 1,
  16.     "nscannedAllPlans" : 1,
  17.     "scanAndOrder" : false,
  18.     "indexOnly" : false,
  19.     "nYields" : 0,
  20.     "nChunkSkips" : 0,
  21.     "millis" : 0,
  22.     "indexBounds" : {
  23.         "d" : [
  24.             [
  25.                 4,
  26.                 4
  27.             ]
  28.         ],
  29.         "c" : [
  30.             [
  31.                 1,
  32.                 1.7976931348623157e+308     // $lte is not applied
  33.             ]
  34.         ]
  35.     },
  36.     "server" : "bdvlpabhishekk:27016"
  37. }
  38. ----------------------
  39. Mongo > db.test.find({d : 4, c : {$lte : 2, $gte : 1}}).explain()   // $lte and $gte is interchanged, but index bound is again not expected
  40. {
  41.     "cursor" : "BtreeCursor d_1_c_1",
  42.     "isMultiKey" : true,
  43.     "n" : 1,
  44.     "nscannedObjects" : 1,
  45.     "nscanned" : 1,
  46.     "nscannedObjectsAllPlans" : 1,
  47.     "nscannedAllPlans" : 1,
  48.     "scanAndOrder" : false,
  49.     "indexOnly" : false,
  50.     "nYields" : 0,
  51.     "nChunkSkips" : 0,
  52.     "millis" : 0,
  53.     "indexBounds" : {
  54.         "d" : [
  55.             [
  56.                 4,
  57.                 4
  58.             ]
  59.         ],
  60.         "c" : [
  61.             [
  62.                 -1.7976931348623157e+308,   // $gte not applied
  63.                 2
  64.             ]
  65.         ]
  66.     },
  67.     "server" : "bdvlpabhishekk:27016"
  68. }
Advertisement
Add Comment
Please, Sign In to add comment