Mongodb日期查询 - 使用java驱动程序不返回结果

时间:2016-12-23 20:17:12

标签: mongodb

这是我在mongodb的收藏

{
        "_id" : ObjectId("58553f0318e2893724222cdb"),
        "name" : "abc",
        "datetime" : ISODate("2017-01-23T10:50:50.574Z")
}
{
        "_id" : ObjectId("58553f0318e2893724222cdb"),
        "name" : "abc",
        "datetime" : ISODate("2016-01-23T10:50:50.574Z")
}

{
        "_id" : ObjectId("58553f0318e2893724222cdb"),
        "name" : "abc",
        "datetime" : ISODate("2015-01-23T10:50:50.574Z")
}

我使用java驱动程序查询此集合,如下所示

MongoCollection<Document> collection = db.getCollection("collection");
Document DateFilter = new Document("datetime", new Document("$gt",new Date()));
int count = collection.find(DateFilter).size();

计数返回0.(它应该返回1) 无论我使用什么范围,总是返回0

DateFilter.toJson(),返回以下内容

{ "datetime" : { "$gte" : { "$date" : 1482524040000 } } }

当我使用上面的json作为过滤器直接查询mongodb shell时,不会返回任何内容。

当我使用下面的json作为过滤器时,返回正确的结果

{"datetime" : { "$gt" :  ISODate("2016-12-24T20:56:05.423Z") } }

1 个答案:

答案 0 :(得分:0)

对不起。我实际上使用的是超过集合总数的skip,这就是为什么它没有返回任何东西。