首页 > 解决方案 > 时间戳范围的MongoDB shell查询在java中不起作用

问题描述

mongoDB shell 中的以下查询

   db.getCollection('Consolidated Records').find({'timestamp': {$gte: 1500000036316, $lte:1500001136316}})

正在工作并返回几条记录。

Java中的相同查询如下:

long firstTimestamp = 1500000036316L;
long lastTimestamp = 1500001136316L;     
BasicDBObject query = new BasicDBObject("timestamp", new BasicDBObject("$gte", firstTimestamp).append("$lte", lastTimestamp));
DBCursor oneDayCursor = collection.find(query);

在同一个数据库集合上调用时不返回任何结果。

知道 Java 代码有什么问题吗?

标签: javamongodb

解决方案


MongoDB 的版本是多少?

如果您使用的是 3.x,则可以使用以下代码

FindIterable<Document> findCursor = newCol.find(Filters.and(
                    Filters.gte("firstTimestamp", firstTimestamp),
                    Filters.lte("lastTimestamp ", lastTimestamp )));

推荐阅读