#azure #azure-cosmosdb #azure-cosmosdb-sqlapi
#azure #azure-cosmosdb #azure-cosmosdb-sqlapi
Вопрос:
Мне нужно иметь возможность выполнить следующий запрос или что-то подобное:
SELECT count(1) AS userCount, f.gh
FROM f
WHERE f.location.coordinates[1] < <MAX_LAT>
AND f.location.coordinates[1] > <MIN_LAT>
AND f.location.coordinates[0] > <MIN_LNG>
AND f.location.coordinates[0] < <MAX_LNG>
GROUP BY f.gh
У меня есть коллекция, в которой хранятся координаты пользователя на карте. При увеличении я хочу отображать местоположения отдельных пользователей, но при уменьшении я хочу отображать количество пользователей в местоположении, сгруппированных по их 5-символьному геохешу. Этот запрос — именно то, что я хочу, однако вы не можете запускать групповые запросы через rest api, как указано в документах.
Запросы, которые не могут быть обслужены шлюзом
Он не предлагает никаких альтернатив этому, и я все еще новичок в Cosmos. Как я могу успешно выполнить этот запрос?
Комментарии:
1. Можете ли вы использовать один из 4 SDK? .NET, Java, JS и Python. Очень сложно напрямую использовать REST API. SDK скрывают массу сложностей.
2. Нет, я использую . NET core API выдает ту же ошибку. DISTINCT — еще один очень важный оператор, который мне нужно использовать для других частей моей базы данных, и кажется невозможным использовать любой из этих операторов, кроме как в запросе непосредственно на портале, что бесполезно
3. Если вы используете .NET Core, пожалуйста, загрузите и используйте .NET SDK v3. Пакет Nuget здесь. nuget.org/packages/Microsoft . Azure.cosmos . Кроме того, я не знаю, почему вы пишете такой запрос. Похоже, это лучше было бы решить с помощью ST_WITHIN . docs.microsoft.com/en-us/azure/cosmos-db /…
Ответ №1:
Проблема заключалась в том, что я пытался вызвать «group by» через привязки функций Azure, а не фактические.Пакет NET SDK Nuget. Спасибо за помощь.