如何基于ObjectID.timestamp执行java查询?

时间:2015-03-04 21:06:18

标签: java mongodb mongo-java mongo-java-driver

如何从ObjectID.timestamp()中查询基于时间的查询?

db.myCollectin.findOne()._id.getTimestamp()

我已尝试

Date date = new Date();
BasicDBObject query = new BasicDBObject("timestamp", new BasicDBObject("$lt", date);
myCollection.findOne(query);

问题:

不起作用

1 个答案:

答案 0 :(得分:0)

它不起作用,因为您的查询会查找一个名为timestamp的字段,该字段自然不存在。

您可以执行类似下面的shell查询,但请注意,Mongo将为您集合中的每个文档评估JavaScript - 而不使用索引。如果您需要定期查询,我建议将日期存储在文档的字段中。

db.myCollection.find({$where: "this._id.getTimestamp() < ISODate('2015-03-04T21:18:21.419Z')"})