我如何在Mongo db中用Java做一个带有时间戳过滤器的地理空间查询?

问题描述 投票:0回答:1

我正在用Java做一个MongoDB地理空间查询。

 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));

如何在上述地理空间查询中添加时间戳过滤器?

java mongodb
1个回答
0
投票

检查 春季数据mongodb 更多的例子,使用 CriteriaQuery,我给你写了一些模板代码,你可以尝试一下


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);

希望对你有用

© www.soinside.com 2019 - 2024. All rights reserved.