0

我需要在 mongodb 中使用一个查询,它将当前系统日期和时间与 endTime 键的值进行比较。

Date date   =   new Date();
System.out.println("Current Date : "+date);
db.collection.findOne({endTime: "Tue Oct 08 14:08:41 IST 2013"});

返回null。但实际上,结果存在于给定日期

db.collection.findOne({endTime: ISODate("2013-10-08T14:08:41Z")});
{
    "_id" : NumberLong(45),
    "endTime" : ISODate("2013-10-08T18:30:00Z"),
    "publish" : true,
    "startTime" : ISODate("2013-09-30T09:53:14Z")
}
4

1 回答 1

0

您的代码不正确。如果要在 MongoDB shell 上查询日期,请使用以下命令。

> var date = new Date();
> db.myObject.find({endTime:{$lt:date}});

如果要在 java 上运行查询,请使用以下代码:

DBCollection coll = ...

DBObject ltQuery = new BasicDBObject("$lt", new Date());
DBObject obj = coll.findOne(new BasicDBObject("endTime", ltQuery));
if (obj != null) {
    // Get data from DBObject
}
于 2013-10-08T10:25:31.977 回答