java - 时间戳范围的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 代码有什么问题吗?
解决方案
MongoDB 的版本是多少?
如果您使用的是 3.x,则可以使用以下代码
FindIterable<Document> findCursor = newCol.find(Filters.and(
Filters.gte("firstTimestamp", firstTimestamp),
Filters.lte("lastTimestamp ", lastTimestamp )));
推荐阅读
- input - Android 10 adb shell输入keyevent返回0
- laravel - 如何通过 laravel 应用程序使用数字海洋服务器从另一台服务器在远程服务器上运行脚本文件
- c# - How can I have custom asserts with Shouldly and maintain the call-site-specific assertion messages?
- react-native - React Navigation - 从其他选项卡屏幕打开抽屉
- python - 在我的 kivymd 文件中显示 MDList 不起作用
- ruby-on-rails-6 - 我是否需要继续构建我的模型,直到控制器和视图或创建另一个模型来创建每个模型的关联?
- php - 将文件存储在 s3 存储桶中 Laravel
- mysql - 如何将“UPPER”应用于 Eloquent 查询?
- javascript - 打印查询 - graphql 打印机
- ios - CoreData 未显示查询条件