Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/mongodb/11.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
给定日期的java mongodb搜索_Java_Mongodb_Date_Search - Fatal编程技术网

给定日期的java mongodb搜索

给定日期的java mongodb搜索,java,mongodb,date,search,Java,Mongodb,Date,Search,我们在mongodb中有一个user_audit entitytable,它存储所有登录/注销信息。 比如说, "_id" : ObjectId("5228cf0156961de6693b74c0"), "active" : true, "fname" : "Tom", "lastlogin" : ISODate("2013-09-05T18:35:45.608Z"), "lastloginip" : "0:0:0:0:0:0:0:1", "lname" : "Bailey", "lastlog

我们在mongodb中有一个user_audit entitytable,它存储所有登录/注销信息。 比如说,

"_id" : ObjectId("5228cf0156961de6693b74c0"),
"active" : true,
"fname" : "Tom",
"lastlogin" : ISODate("2013-09-05T18:35:45.608Z"),
"lastloginip" : "0:0:0:0:0:0:0:1",
"lname" : "Bailey",
"lastlogout" : ISODate("2013-09-05T18:36:45.568Z"),
在生产过程中,此表中有数千条记录

现在,管理员希望查找特定日期的所有登录名。由于在lastlogin字段中附加到ISODate的时间信息,我无法查找日期的精确匹配。在Java中,使用新日期插入此字段值。 问题是特定日期登录的时间信息不断变化

试过了

query.putlastlogin,新BasicDBObject$lte,givenDate.append$gte,givenDate

显然,它不会返回结果,因为日期的时间部分不匹配

从Java传递到mongo的查询是:

 query={ "lastlogin" : { "$lte" : { "$date" : "2013-09-05T04:00:00.000Z"} , "$gte" : {     
"$date" : "2013-09-05T04:00:00.000Z"}}}
[注意:如果我们在java中使用MM_dd_yyyy进行格式化,则默认值始终为04:00:00.000Z,不确定原因..]

问题是我们在生产数据库中有很多记录。对于新记录,我可以在从Java插入之前清空时间部分。但对于现有记录,不确定如何处理。如何在给定日期获取记录?

根据,您的方向是正确的。您可以查询以下内容

query.put("lastlogin", new BasicDBObject("$lt", givenDatePlusOneDay).append("$gte", givenDateAt00h00min));

这是一个间隔,而不是相同的日期。

知道为什么它默认为T04:00:00.000Z吗?