sql >> Database >  >> NoSQL >> MongoDB

Query polygonen $geowithin $box mongodb levert niets op

De $box-operator voor $geoWithin ondersteunt alleen documenten op basis van rastercoördinaten en biedt geen ondersteuning voor GeoJSON vormen formaat.

Afhankelijk van de structuur van uw documenten en hoe u ze opvraagt, wordt dit waarschijnlijk behandeld als rastercoördinaten, d.w.z. {geometry: [<long>, <lat>]} Dit heeft mogelijk niet gewerkt voor uw polygonendocument omdat GeoJSON-polygonen een extra array-wrapper nodig. bijv. [[ [<long>, <lat>] ]] ongeldig maken van het formaat van de rastercoördinaten.

Als uw documenten in GeoJSON-indeling zijn en u een gebied wilt selecteren, kunt u $geometry in plaats van.

db.places.find(
   {
     'geometry': {
       $geoWithin: {
          $geometry: {
             type : "Polygon" ,
             coordinates: [ [ [ 0, 0 ], [ 3, 6 ], [ 6, 1 ], [ 0, 0 ] ] ]
          }
       }
     }
   }
)

Vermeldenswaard is dat MongoDB Compass geospatiale visualisatie momenteel (v1.6) ondersteunt GeoJSON nog niet.



  1. Mongoose belooft documentatie zegt dat zoekopdrachten geen beloften zijn?

  2. Tijdelijke fout in herdistributie van naam

  3. Is het mogelijk om te zoeken naar een reeks hashes van een gehashte geïndexeerde sleutel in mongodb?

  4. Moet ik admin zijn om een ​​nieuwe gebruiker in MongoDB aan te maken?