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

Add multi{point, line, polygon} and geometrycollection GeoJSON types to 2dsphere index.

    • Type: Icon: Bug Bug
    • Resolution: Done
    • Priority: Icon: Minor - P4 Minor - P4
    • 2.5.1
    • Affects Version/s: 2.4.0-rc1
    • Component/s: Geo, Querying
    • ALL
    • Hide

      See code above.

      Show
      See code above.
    • None
    • 3
    • None
    • None
    • None
    • None
    • None
    • None

      The release notes for the new '2dsphere' index does not indicate if indexing arrays of GeoJSON objects is supported.

      It was supported for the '2d' index so I expected it to be supported for the '2dsphere' indexes but I tried it with 2.4.0_rc1 and it returned a "malformed geometry" error:

      > db.system.indexes.find();
      { "v" : 1, "key" : { "_id" : 1 }, "ns" : "acceptance_test.geo_2", "name" : "_id_" }
      { "v" : 1, "key" : { "p" : "2dsphere" }, "ns" : "acceptance_test.geo_2", "name" : "p_2dsphere" }
      > db.geo_2.insert( { "p" : [ { "type" : "Point", "coordinates" : [ 87.9259315145841, 63.65550362431469 ] }, { "type" : "Point", "coordinates" : [ 88.9259315145841, 64.65550362431469 ] } ] } )
      Can't extract geo keys from object, malformed geometry?:{ 0: { type: "Point", coordinates: [ 87.92593151458409, 63.65550362431469 ] }, 1: { type: "Point", coordinates: [ 88.92593151458409, 64.65550362431469 ] } }
      

      I can understand not supporting indexing arrays of GeoJSON documents but it should be documented in the release notes at a minimum.

      For grins I also tried the GeometryCollection:

      > db.geo_2.insert( { "p" : { "type": "GeometryCollection", "geometries": [ { "type" : "Point", "coordinates" : [ 87.9259315145841, 63.65550362431469 ] }, { "type" : "Point", "coordinates" : [ 88.9259315145841, 64.65550362431469 ] } ] } } )
      Can't extract geo keys from object, malformed geometry?:{ type: "GeometryCollection", geometries: [ { type: "Point", coordinates: [ 87.92593151458409, 63.65550362431469 ] }, { type: "Point", coordinates: [ 88.92593151458409, 64.65550362431469 ] } ] }
      

      ... and MultiPoint but neither worked.

      > db.geo_2.insert( { "p" : { "type" : "MultiPoint", "coordinates" : [ [ 87.9259315145841, 63.65550362431469 ] , [ 88.9259315145841, 64.65550362431469 ] ] } } )
      Can't extract geo keys from object, malformed geometry?:{ type: "MultiPoint", coordinates: [ [ 87.92593151458409, 63.65550362431469 ], [ 88.92593151458409, 64.65550362431469 ] ] }
      

            Votes:
            13 Vote for this issue
            Watchers:
            15 Start watching this issue

              Created:
              Updated:
              Resolved: