я работаю над API. одна из моих конечных точек возвращает мне Spots вокруг точки, определенной координатами LONGITUDE
и LATITUDE
, упорядоченными по страницам. Я также отправляю PAGE_SIZE
для номера или места для возврата и MIN_DISTANCE
для начала страницы, которая является последним элементом последней страницы.
Я использую для этого ключ $geoNear, это удобно, потому что он также возвращает мне расстояние до центра, которое я использую для пейджинга.
К сожалению, сейчас я размещаю базу данных на Azure COSMOS DB, и кажется, что $geoNear не поддерживается.
https://docs.microsoft.com/en-us/azure/cosmos-db/mongodb-feature-support-36#aggregation-stages
что было бы лучшей альтернативой для получения наиболее похожего результата? есть набор или ключ, который звучит хорошо, но не может определить лучший вариант: ($geoWithin, $geoIntersects, $near, $nearSphere, $geometry)
https://docs.microsoft.com/en-us/azure/cosmos-db/mongodb-feature-support-36#geospatial-operators
Spots.aggregate
([
{
$geoNear: {
near: {
type: "Point",
coordinates: [ LONGITUDE, LATITUDE ]
},
distanceField: "location.distance",
spherical: true,
minDistance: MIN_DISTANCE,
maxDistance: DISTANCE * 1000,
query: {
$and: [
...
]
}
}
},
{ $match: {} },
{ $limit : PAGE_SIZE},
...
Спасибо :)
$near
или$nearSphere
. - person Wernfried Domscheit   schedule 12.01.2021