这是我第一次使用Mongodb和java驱动程序.我可以使用javascript和Date()对象通过命令行查询数据库,但是,我在使用驱动程序时遇到问题.根据我的查询,任何人都可以看到问题是什么?谢谢
Date current = new Date();
DBCollection coll = db.getCollection("messages");
BasicDBObject query = new BasicDBObject("created_on", new BasicDBObject("$gte", new Date(current.getYear(), current.getMonth(), current.getDate())).
append("created_on", new BasicDBObject("$lt", new Date(current.getYear(), current.getMonth() - 1, current.getDate()))));
System.out.println("Query: " + query);
DBCursor cursor = coll.find(query);
Run Code Online (Sandbox Code Playgroud)
查询:{"created_on":{"$ gte":{"$ date":"2012-12-06T05:00:00.000Z"},"created_on":{"$ lt":{"$ date":" 2012-11-06T05:00:00.000Z"}}}}
PS如果不明显,我试图找到上个月内的所有记录.
cub*_*buk 16
好像你正在构建错误的查询.请尝试下面的一个:
BasicDBObject query = new BasicDBObject("created_on", //
new BasicDBObject("$gte", new DateTime().toDate()).append("$lt", new DateTime().toDate()));
Run Code Online (Sandbox Code Playgroud)
Datetime
object是一个简化java中日期操作的库.你可以检查一下.
http://joda-time.sourceforge.net/
此外,morphia是一个很好的java对象 - 文档映射器(ODM)框架,用于通过java驱动程序使用mongodb.它简化了通过java查询.
https://github.com/jmkgreen/morphia
归档时间: |
|
查看次数: |
16115 次 |
最近记录: |