我正在用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));
如何在上述地理空间查询中添加时间戳过滤器?
检查 春季数据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);
希望对你有用