sql >> Databáze >  >> NoSQL >> MongoDB

Polygony dotazu $geowithin $box mongodb nic nevrací

operátor $box pro $geoWithin podporuje pouze dokumenty založené na souřadnicích mřížky a nepodporuje GeoJSON formát tvarů.

V závislosti na struktuře vašich dokumentů a způsobu, jakým se na ně dotazujete, je to pravděpodobně považováno za souřadnice mřížky, tj. {geometry: [<long>, <lat>]} To možná nefungovalo pro váš dokument polygonů, protože Polygony GeoJSON vyžadují další obálku pole. tj. [[ [<long>, <lat>] ]] zneplatnění formátu souřadnic mřížky.

Pokud jsou vaše dokumenty ve formátu GeoJSON a chtěli byste vybrat oblast, můžete použít $geometry namísto.

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

Stojí za zmínku, že MongoDB Compass geoprostorová vizualizace aktuálně (v1.6) zatím nepodporuje GeoJSON.



  1. MongoDB skupina po hodině

  2. Agregátní časové řady MongoDB

  3. Jak získat přístup k úložišti Nuget z .NET Core pomocí Visual Studio Code

  4. Instalace Redis na Debian 9