MongoDB найти $ вблизи в массиве объектов - PullRequest
0 голосов
/ 14 ноября 2018

Я начал работать с MongoDB API, потому что мы используем Azure Cosmos DB. Пробовал примеры использования $ near в MongoDB с базовой структурой {key: "A": localtion: {type: "Point", координаты: [1,2]}} и работает хорошо. Проблема в том, когда мне нужно использовать массив локаций.

Я пытаюсь выполнить этот запрос без результата. Что я делаю плохо?

db.places.insert( {
    id:1,
    name: "AAAAAAAAAAA",
    locals:[
        {
        location: { type: "Point", coordinates: [-73.9928, 40.7191 ] },
        }
    ],
   category: "Parks"
} );   
db.places.insert( {
    id:2,
    name: "BBBBBBBBBBB",
    locals:[
        {
        location: { type: "Point", coordinates: [-73.9928, 40.7193 ] },
        }
    ],
   category: "Parks"
} );
db.places.insert( {
    id:3,
    name: "CCCCCCCCCCCCC",
    locals:[
        {
        location: { type: "Point", coordinates: [  -73.9375, 40.8303 ] },
        }
    ],
   category: "Parks"
} );
//Create index
db.places.createIndex({ "locals.location" : "2dsphere" })
//Query without result
db.places.find(
   {
     "locals.location":
       { $near:
          {
            $geometry: { type: "Point",  coordinates: [ -73.9375, 40.8303 ] },
            $minDistance: 1000,
            $maxDistance: 5000
          }
       }
   }
)

В этих местах много местных жителей, поэтому у меня внутри может быть много объектов.

Надеюсь, кто-нибудь мне поможет.

Приветствие.

1 Ответ

0 голосов
/ 14 ноября 2018

На основании моего теста с вашими данными выборки также получен пустой результат, такой же как и у вас. Насколько мне известно, CosmosDB просто поддерживает подмножество API MongoDB и переводит запросы в SQL-код CosmosDB. У CosmosDB есть несколько вариантов поведения и результатов. Но ответственность за улучшение эмуляции MongoDB лежит на CosmosDB.

Конечно, вы можете добавить отзыв здесь , чтобы представить свои требования или рассмотреть возможность использования MongoDB Atlas в Azure, если вам нужна полная поддержка функций MongoDB.

...