Я пытаюсь выполнить геопространственный запрос 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());