环境: MongoDB 3.0, Java Driver 3.0
一般的查询(find()) ,用的查询条件是Filter等相关的工具类。但是这个在aggregate中的$match行不通,会报错(codec not found for Filter.and)
经过试验,发现要用如下的方法:
List<Document> l = new ArrayList<Document>();
l.add(new Document("its", new Document("$gt", start)));
l.add(new Document("its", new Document("$lte", end)));
Document timestampRange = new Document("$and", l);
然后,就可以用
db.getCollection(collection).aggregate(
asList(
new Document("$match", timestampRange),
/ 省略
)
);
来进行归并查询了。