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

Time series query plan results with 2dsphere index do not match collection scan

    XMLWordPrintableJSON

Details

    • Bug
    • Status: Closed
    • Major - P3
    • Resolution: Fixed
    • None
    • 6.0.0-rc5, 6.1.0-rc0
    • None
    • None
    • Fully Compatible
    • ALL
    • v6.0
    • QO 2022-04-18, QO 2022-05-02
    • 135

    Description

      Having a 2dsphere index on a time series collection can leave out results. Note that it starts to fail at 1001 documents, and a bucket can hold 1000 documents at most.

       

      (function() {
      "use strict";
       
      load("jstests/core/timeseries/libs/timeseries.js");
       
      const coll = db.collection;
      coll.drop();
      assert.commandWorked(
          db.createCollection(coll.getName(), {timeseries: {timeField: 'timestamp', metaField: 'meta'}}));
       
      Random.srand(1);
      function random(min, max) {
          return Random.rand() * (max - min + 1) + min;
      }
       
      function compareResultsWithAndWithoutIndex(){
          assert.commandWorked(coll.createIndex({location: '2dsphere'}));
       
          const pipeline = [{
              "$match": {
                  "location":
                      {"$geoWithin": {"$centerSphere": [[-78.64332757901981, 42.04289085325348], 0.001]}}
              }
          }]
       
          const results1 = coll.aggregate(pipeline).toArray();
          jsTestLog("results1")
          jsTestLog(results1);
       
          assert.commandWorked(coll.dropIndexes());
       
          const results2 = coll.aggregate(pipeline).toArray();
          jsTestLog("results2")
          jsTestLog(results2);
       
          assert.eq(results1, results2);
      }
       
      for (let i = 0; i < 1001; ++i) {
          const doc = {
              timestamp: new Date(),
              meta: 1,
              location: [random(-80.0, -73.0), random(40.0, 45.0)]
          };
          assert.commandWorked(coll.insert(doc));
      }
      compareResultsWithAndWithoutIndex();
      })();
      

       

      Attachments

        Activity

          People

            dan.larkin-york@mongodb.com Dan Larkin-York
            matt.boros@mongodb.com Matt Boros
            Votes:
            0 Vote for this issue
            Watchers:
            6 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved: