У меня есть такая структура документа:
{
name: "John",
addresses: [
{
city: "London",
location: {
type: "Point",
coordinates: [0, 0]
}
},
{
city: "New York",
location: {
type: "Point",
coordinates: [-74, 40]
}
}
]
},
{
name: "Joanna",
addresses: [
// Similar array of her addresses
]
}
Теперь у меня есть координата x = (0.0001, 0.0001)
.Я хочу, чтобы все люди в моей коллекции имели адрес, близкий к этой точке , и получали только эти адреса в ответе .Для координаты запроса как x
мне нужен только первый адрес Джона в ответе:
{
name: "John",
addresses: [
{
city: "London",
location: {
type: "Point",
coordinates: [0, 0]
}
}
]
}
Я видел похожие примеры, но все они возвращают весь документ, то есть возвращают все Джон.адреса.Как вернуть только адреса (их может быть больше одного, следовательно, оператор $
не будет работать), которые находятся вблизи координаты запроса x
?
PS- Я попытался развернуть и затем проверить (используя структуру агрегации), но это не позволяет мне использовать пространственный запрос где-либо еще, кроме первой стадии конвейера.