这是一个示例文档
{ "userId" : "ABC,
"timestamp" : ISODate("2014-09-03T22:07:01.261Z"),
"body" : {
"id" : "0082171",
"name" : "XYZ",
"palce":"Ind"
},
}
DBObject match = new BasicDBObject();
match.put("body.id","0082171");
match.put("body.name", new BasicDBObject("$exists",1));
我算得上50999
当我为匹配标准添加日期字段时,我没有得到任何价值。
DBObject match = new BasicDBObject(); match.put(" data.type"" score.type&#34); match.put(" body.name",new BasicDBObject(" $ exists",1)); match.put("时间戳"" 2014-09-03T22:07:01.261Z&#34);
我希望我的java代码能够找到值
答案 0 :(得分:2)
只需在查询中使用标准java.util.Date
对象 - Java驱动程序将为您处理转换。
您的代码的问题在于您尝试将String与ISODate对象匹配,并且永远不会匹配。
以下是您的代码的外观:
Date timeStamp = new Calendar().set(2014,09,03,22,07,01).getTime();
DBObject match = new BasicDBObject();
match.put("data.type","score.type");
match.put("body.name", new BasicDBObject("$exists",1));
match.put("timestamp",timeStamp);