Dates shown in indexBounds are incorrect

XMLWordPrintableJSON

    • Type: Bug
    • Resolution: Done
    • Priority: Major - P3
    • None
    • Affects Version/s: 2.6.4
    • Component/s: Querying
    • None
    • ALL
    • Hide
      > for(var a = 0 ;a < 100; a++){db.foo.insert({"a": new Date()})}
      WriteResult({ "nInserted" : 1 })
      > db.foo.ensureIndex({a:1})
      > db.foo.find({a:{$gt: ISODate("2014-09-15T22:18:08.403Z")}}).explain()
      {
              "cursor" : "BtreeCursor a_1",
              "isMultiKey" : false,
              "n" : 99,
              "nscannedObjects" : 99,
              "nscanned" : 99,
              "nscannedObjectsAllPlans" : 99,
              "nscannedAllPlans" : 99,
              "scanAndOrder" : false,
              "indexOnly" : false,
              "nYields" : 1,
              "nChunkSkips" : 0,
              "millis" : 485,
              "indexBounds" : {
                      "a" : [
                              [
                                      ISODate("2014-09-15T22:18:08.403Z"),
                                      ISODate("0NaN-NaN-NaNTNaN:NaN:NaNZ")
                              ]
                      ]
              },
              "server" : "testpc:27017",
              "filterSet" : false
      }
      
      Show
      > for ( var a = 0 ;a < 100; a++){db.foo.insert({ "a" : new Date()})} WriteResult({ "nInserted" : 1 }) > db.foo.ensureIndex({a:1}) > db.foo.find({a:{$gt: ISODate( "2014-09-15T22:18:08.403Z" )}}).explain() { "cursor" : "BtreeCursor a_1" , "isMultiKey" : false , "n" : 99, "nscannedObjects" : 99, "nscanned" : 99, "nscannedObjectsAllPlans" : 99, "nscannedAllPlans" : 99, "scanAndOrder" : false , "indexOnly" : false , "nYields" : 1, "nChunkSkips" : 0, "millis" : 485, "indexBounds" : { "a" : [ [ ISODate( "2014-09-15T22:18:08.403Z" ), ISODate( "0NaN-NaN-NaNTNaN:NaN:NaNZ" ) ] ] }, "server" : "testpc:27017" , "filterSet" : false }
    • None
    • None
    • None
    • None
    • None
    • None
    • None

      MongoDB shell shows incorrect date when explain() is run with find() query on an indexed Date field.

      1. Simply fill a collection with 100 documents containing a date field
      2. Create an index on the date field.
      3. Run a simple find query with explain() and see the indexBounds on the date field.

      > for(var a = 0 ;a < 100; a++){db.foo.insert({"a": new Date()})}
      WriteResult({ "nInserted" : 1 })
      > db.foo.ensureIndex({a:1})
      > db.foo.find({a:{$gt: ISODate("2014-09-15T22:18:08.403Z")}}).explain()
      {
              "cursor" : "BtreeCursor a_1",
              "isMultiKey" : false,
              "n" : 99,
              "nscannedObjects" : 99,
              "nscanned" : 99,
              "nscannedObjectsAllPlans" : 99,
              "nscannedAllPlans" : 99,
              "scanAndOrder" : false,
              "indexOnly" : false,
              "nYields" : 1,
              "nChunkSkips" : 0,
              "millis" : 485,
              "indexBounds" : {
                      "a" : [
                              [
                                      ISODate("2014-09-15T22:18:08.403Z"),
                                      ISODate("0NaN-NaN-NaNTNaN:NaN:NaNZ")
                              ]
                      ]
              },
              "server" : "testpc:27017",
              "filterSet" : false
      }
      

            Assignee:
            Ramon Fernandez
            Reporter:
            Riaz Ahmed
            Votes:
            0 Vote for this issue
            Watchers:
            5 Start watching this issue

              Created:
              Updated:
              Resolved: