Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/338.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

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_Jodatime - Fatal编程技术网

Java中的MongoDB日期搜索返回零结果

Java中的MongoDB日期搜索返回零结果,java,mongodb,jodatime,Java,Mongodb,Jodatime,我有一个GridFS中的文件列表,我试图按日期查询这些文件。示例文档如下所示: { "_id" : ObjectId("52e431d3e84f6fa18c53c808"), "chunkSize" : NumberLong(262144), "length" : NumberLong(13021), "md5" : "0eb01f0d266f4bf4764d4ffc7e70a7ed", "filename" : "120_1390686674383",

我有一个GridFS中的文件列表,我试图按日期查询这些文件。示例文档如下所示:

{
    "_id" : ObjectId("52e431d3e84f6fa18c53c808"),
    "chunkSize" : NumberLong(262144),
    "length" : NumberLong(13021),
    "md5" : "0eb01f0d266f4bf4764d4ffc7e70a7ed",
    "filename" : "120_1390686674383",
    "contentType" : null,
    "uploadDate" : ISODate("2014-01-25T21:51:15.049Z"),
    "aliases" : null
}
DateTime dt = new DateTime(queryObj.getTime()); //org.joda.DateTime
BasicDBObject sort = new BasicDBObject();
sort.put("uploadDate", -1);

BasicDBObject query = new BasicDBObject();
query.put("uploadDate", new BasicDBObject("$gte", dt));

DBCursor cursor = fileStore.getFileList(query, sort);
我正在尝试通过执行以下操作,根据时间戳获取“最近的”:

{
    "_id" : ObjectId("52e431d3e84f6fa18c53c808"),
    "chunkSize" : NumberLong(262144),
    "length" : NumberLong(13021),
    "md5" : "0eb01f0d266f4bf4764d4ffc7e70a7ed",
    "filename" : "120_1390686674383",
    "contentType" : null,
    "uploadDate" : ISODate("2014-01-25T21:51:15.049Z"),
    "aliases" : null
}
DateTime dt = new DateTime(queryObj.getTime()); //org.joda.DateTime
BasicDBObject sort = new BasicDBObject();
sort.put("uploadDate", -1);

BasicDBObject query = new BasicDBObject();
query.put("uploadDate", new BasicDBObject("$gte", dt));

DBCursor cursor = fileStore.getFileList(query, sort);
如果我简单地对文件存储进行排序,我会得到许多记录,并且可以通过游标进行枚举。然而,每当我尝试使用$gte或$lte时,我得到的结果都是零


是否缺少一个步骤?

您正在传递一个joda DateTime引用,而驱动程序不知道如何做。如果您检查日志,您可能会发现它实际上调用了一个toString()并将其传入。因为字符串不是日期,所以比较失败。尝试只传入一个java.util.Date(您可以从DateTime,iirc获得一个)。

您是对的,dt对象有一个正常工作的to-DateTime。