MongoDB
 sql >> база данни >  >> NoSQL >> MongoDB

Полигони на заявка $geowithin $box mongodb не връща нищо

оператор $box за $geoWithin поддържа само документи, базирани на мрежови координати и не поддържа GeoJSON формат на фигури.

В зависимост от структурата на вашите документи и начина, по който ги правите заявки, това вероятно се третира като координати на мрежата, т.е. {geometry: [<long>, <lat>]} Това може да не е проработило за вашия документ с полигони, защото GeoJSON полигони изисква допълнителна обвивка на масив. т.е. [[ [<long>, <lat>] ]] обезсилване на формата на координатната мрежа.

Ако вашите документи са във формат GeoJSON и искате да изберете област, можете да използвате $geometry вместо.

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

Струва си да се отбележи, че MongoDB Compass геопространствената визуализация в момента (v1.6) все още не поддържа GeoJSON.



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Вътрешна грешка в сървъра при мигриране на Parse към Heroku/AWS

  2. как да получите комбинации от елементи в поле за масив в MongoDB?

  3. MongoDB C# Агрегиране - размотаване -> groupBy

  4. Кога да затворите връзката с базата данни MongoDB в Nodejs

  5. MongoDB:влошена производителност на заявките