координаты mongodb GeoJSON должны быть массивом

#node.js #mongodb #mongodb-query #geojson

#node.js #mongodb #mongodb-запрос #geojson

Вопрос:

Существует требование поиска некоторых местоположений в данном регионе. И вот пример моих тестовых данных в mongo:

 {
"_id" : "insititution_NPqTrcysjKV",
"phone" : "18080808088",
"name" : "Insititution 1",
"address" : "xxxxxxxxxxxxx",
"city" : "New York",
"location" : {
    "type" : "Point",
    "coordinates" : [ 
        121.62764, 
        29.89805
    ]
},
"includeLessions" : [ 
    "English"
]
}
 

У меня есть список таких записей в моем mongodb. и вот мой запрос в Robo3T:

 db.Insititution.find(
{
 location: {
   $geoIntersects: {
      $geometry: {
         type: "Polygon" ,
         coordinates: [
           [ [ 121.33, 29.899 ], [ 121.33, 29.770 ], [ 121.67, 29.770 ], [ 121.67, 29.899 ], [ 121.33, 29.899 ] ]
         ]
      }
   }
 }
 }
 )
 

Это работает в robo3t, но в моем проекте мне понравилось это:

     var where = {
      location: {
        $geoIntersects: {
          $geometry: {
            type: "Polygon",
            coordinates: [
              [longitudeMin, latitudeMin],
              [longitudeMin, latitudeMax],
              [longitudeMax, latitudeMax],
              [longitudeMax, latitudeMin],
              [longitudeMin, latitudeMin]
            ]
          }
        }
      }
    }
    return promiseUtils.mongoNativeFindPromise(this.modelName, where);


  // function in promiseUtils:
  exports.mongoNativeFindPromise = async function (modelName, where, options) {
  const db = await MongoClient.connect(uri);
  try {
    let collection = db.db(mongoDBSettings.database);
    var cusor = await collection.collection(modelName).find(where, options);
    return await cusor.toArray();
  } catch (err) {
    throw err;
  } finally {
    db.close();
  }
};
 

и это именно то, на что похожа переменная ‘where’ при запуске кода:
введите описание изображения здесь
но mongo возвращает ошибку: координаты GeoJSON должны быть массивом
Кто-нибудь может помочь?

Комментарии:

1. Сравните ваш полигон с этим примером: docs.mongodb.com/manual/reference/operator/query/geoIntersects /… Это должно быть [[ [longitudeMin, latitudeMin], [longitudeMin, latitudeMax], [longitudeMax, latitudeMax], [longitudeMax, latitudeMin], [longitudeMin, latitudeMin] ]]

2. глупый вопрос спасибо за ответ