Как добавить ограничение $ geoWithin в запрос на сервере разбора? - PullRequest
0 голосов
/ 06 июня 2018

Я пытался добавить ограничение $geoWithin к Parse.Query, например так:

var query = new Parse.Query("MyCollection");
var jsonQuery = query.toJSON();

jsonQuery.where.location = {
    "$geoWithin": {
        "$centerSphere": [
            [geoPoint.longitude, geoPoint.latitude],
            10 / 6371.0
        ]
    }
};

query.withJSON(jsonQuery);

Выдает ошибку:

bad $ geoWithin value;$ polygon должен содержать как минимум 3 GeoPoints.

Очевидно, причина в том, что Mongo Transformer Parse Server принимает только параметр многоугольника с $geoWithin.

Howя могу добавить ограничение запроса, которое ограничивает результаты документами с полем location в пределах определенного радиуса в км от географической координаты?

1 Ответ

0 голосов
/ 13 июня 2018

Оказалось, что Parse Server не поддерживает этот тип запроса.Но поскольку Parse Server является открытым * нашим проектом на Github , я добавил функцию *.

. Код в вопросе работает, и то же самое можно сделать, установив новый sorted.параметр в гео-запросах к false:

var location = new Parse.GeoPoint(37.708813, -122.526398);
var distance = 5;
var sorted = false;

var query = new Parse.Query(MyCollection);
query.withinKilometers("location", location, distance, sorted);

* Функция еще не доступна в Parse Server v2.8.2 и JS SDK v1.11.1, ожидая слияния запросов на извлечение.

...