как сделать так, чтобы "$ nearSphere" возвращал также элементы без каких-либо координат? - PullRequest
0 голосов
/ 15 марта 2020

Я пытаюсь выполнить запрос $nearSphere, как показано ниже:

"coordinates":{
  "$nearSphere":{
    "$geometry":{
      "type":"Point",
      "coordinates":[7.16,47.13]}}},

Проблема в том, что он не возвращает мне документы, которые не имеют узла "coordinates" (даже в конце списка). Являются ли они способом заставить $nearSphere возвращать документы (в конце списка), которые не имеют узла "coordinates"?

1 Ответ

2 голосов
/ 15 марта 2020

Нет, ни в одном запросе.

$ nearSphere требуется геопространственный индекс. Документы без координат исключаются из индекса и в основном не видны для запроса.

Вы можете выполнить второй запрос, чтобы найти все документы без координат tho:

.find({"coordinates": {$exists: false}})

и объединить оба курсора на уровне приложения.

В качестве альтернативы вы можете выполнить оба запроса в одном конвейере с $ facet, чтобы объединить результаты на стороне базы данных.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...