声明:我正在尝试使用java从MongoDB集合(Emp)获取文档。
条件:与人的DOB(出生日期)匹配的地方。
问题:然而,它永远不会返回记录。
但它适用于其他领域,如EmpID或EmpName等。我的收藏文件看起来像这样,
{ "_id" : ObjectId("5d4d9059f0b31921a4916a0c"), "EmpID" : "1001", "EmpName" : "John", "Sal" : 30000.0, "DOB" : ISODate("1989-06-09T18:30:00.000+0000"), "Age" : 31.0 } 请找到我尝试过的以下java代码,
BasicDBObject dbo = new BasicDBObject(); dbo.append("DOB", new BasicDBObject("$eq","1989-06-10T00:00:00.000"));
FindIterable doc = coll.find(dbo);
for (Document dox : doc) {
System.out.println(dox.toJson()); }
对于ISODate,需要传入Date对象BasicDBObject,而不是String还必须提供时区:
dbo.append("DOB", new BasicDBObject("$eq",new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss.SSSXX").parse("1989-06-10T00:00:00.000+0000");)); 对于出生日期,最好同时使用$gte和$lt比较运算符,如下:
Date dayStart = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss.SSSXX").parse("1989-06-10T00:00:00.000+0000"; Date dayEnd = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss.SSSXX").parse("1989-06-11T00:00:00.000+0000";
BasicDBObject query = new BasicDBObject("Date", new BasicDBObject("$gt", dayStart)).append("$lte", dayEnd)));
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。