Геопространственный запрос MongoDB с использованием Java? - PullRequest
0 голосов
/ 03 декабря 2018

Я пытаюсь выполнить геопространственный запрос MongoDB с помощью Java Spring Boot.But Мой запрос не возвращает данных ...

Моя структура документа "ищущий" для коллекции MongoDB:

    {
      "_id": "5c0384050ff0b40f0872865a",
      "firstName": "Vikas",
      "lastName": "Prasad",
      "mobile": "9958846308",
      "email": "iamvikasandc@gmail.com",
      "location": {
             "type": "Point",
             "coordinates": [
                    77.31123,
                    28.50669
                  ]
               }
    }

Запрос, который я строю с использованием Java:

    MongoClient mongoClient = new MongoClient("localhost" , 27017 );
        DB db = mongoClient.getDB("test");
        DBCollection collection=  db.getCollection("seeker");
        BasicDBObject point = new BasicDBObject("type", "Point");
        double[] ptCordinate={getNearBySeekers.getLongitude(),getNearBySeekers.getLatitude()};
        point.put("coordinates", ptCordinate);

        BasicDBObject que = new BasicDBObject();
        que.put("$geometry", point);
        que.put("$minDistance", 1000);
        que.put("$maxDistance", 5000);
        BasicDBObject query = new BasicDBObject(
            "location", new BasicDBObject(
                "$near", que
            )
        );
        System.out.println(query.toJson());
        collection.findOne(query);

Но почему он дает мне пустой результат?Что в этом плохого?Я уже создал 2dsphere индекс для ключа местоположения в БД.

Используя следующий QueryBuilder. Я получаю все документы, но не в соседнем фильтре.

    QueryBuilder bui = new QueryBuilder();
    bui.start("location").near(getNearBySeekers.getLongitude(),getNearBySeekers.getLatitude());
    DBCursor cursor = collection.find(bui.get());
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...