Результаты моего запроса mongoDB $ near не отсортированы - PullRequest
0 голосов
/ 14 апреля 2020

Когда я делаю запрос к базе данных MongoDB, используя mon goose и геопространственный оператор mongoDB $near (также пытался $nearSphere), мой код возвращает статус HTTP 200 с правильным списком документов, но они равны не отсортировано от ближайшего к дальней (что, к сожалению, не соответствует цели оператора $near).

Я убедился, что у меня есть индекс "2dsphere", созданный для моего ключа geometry, и что Этот ключ отформатирован в соответствии с рекомендациями Geo Json.

Это код, который я использую для запроса к базе данных:

const locations = await Location.find({
        geometry: {
            $near: {
                $geometry: {
                    type: 'Point',
                    coordinates: [lon, lat]
                }
            }
        }
    });

Где lat и lon Floats.

3 первых объекта, возвращенных из моего приложения: следующее:

{
    "_id": "5e2ef89e326e885327c6e898",
    "address": "20 Brune Street",
    "availability": false,
    "distance_to": 10583,
    "power": 3840,
    "coordinates": {
      "latitude": 51.51792,
      "longitude": -0.075343
    }
  },
  {
    "_id": "5e2ef79d326e885327c6e882",
    "address": "32 Bedford Row",
    "availability": true,
    "distance_to": 8028,
    "power": 3840,
    "coordinates": {
      "latitude": 51.520297,
      "longitude": -0.116327
    }
  },
  {
    "_id": "5e2ef801326e885327c6e891",
    "address": "42 York Way",
    "availability": false,
    "distance_to": 8322,
    "power": 3840,
    "coordinates": {
      "latitude": 51.532265,
      "longitude": -0.12251
    }
  }

Обратите внимание, что я сознательно не включаю ключ Geo Json в возвращаемые объекты, но они присутствуют в каждом документе базы данных.

Я пропал что-то?

Заранее спасибо!

...