Как я могу выполнить геопространственный запрос в mon go db с фильтром отметок времени в Java? - PullRequest
0 голосов
/ 09 мая 2020

Я выполняю геопространственный запрос MongoDB с Java;

 FindIterable<Document> result = collection.find(
            Filters.near("gps_location", currentLoc, 1000.0, 0.0));

Теперь я хочу добавить фильтр меток времени, например

BasicDBObject query = new BasicDBObject();
    Timestamp timestamp = new Timestamp(1585906034);
    query.put("timestamp", new BasicDBObject("$gte", timestamp));

Как я могу добавить фильтр меток времени к приведенному выше геопространственный запрос?

1 Ответ

0 голосов
/ 09 мая 2020

проверьте Spring data mongodb для получения дополнительных примеров. Используя Criteria и Query, я пишу для вас код шаблона, вы можете попробовать


Query orQuery = new Query();
 Criteria orCriteria = new Criteria();
 List<Criteria> orExpression =  new ArrayList<>();
   // multiple condition in or
   Criteria location = Criteria.and("location").near(point).maxDistance(0.01)
   orExpression.add(location);
   Criteria ts = Criteria.and("timestamp").gte(1585906034);
   orExpression.add(ts);
// build final criteria 
 orQuery.addCriteria(orCriteria.orOperator(orExpression.toArray(new Criteria[orExpression.size()])));
 List<Document> documents = mongoOperations.find(orQuery, Document.class);

Надеюсь, это работать на вас

...