mongodb java查询where子句的日期

时间:2016-03-01 17:41:35

标签: java mongodb mongodb-query

我是MongoDB的新手,不知道如何实现以下目标。 该集合中的一个文件,

{ 
    "_id" : ObjectId("56cf4cf2997964f0d91aa373"), 
    "id" : "A", 
    "status" : "open", 
    "createdTime" : NumberLong(1456426212898)
}

我想用以下查询,

获取数据

其中 - status已开启&& (createdTime + 10分钟)< currentTime的

以下代码适用于status。但不知道如何包括如上所示的时间。

for open `status` - {"status":"open"}

Java代码,

    final Bson statusFilter = eq("status", "open");

    final Document projection = new Document();

    final Document sort = new Document();
    sort.append(CREATED_TIME, -1);

    final FindIterable<Document> operation = collection.find(filter).projection(projection).sort(sort);

但不确定,如何实现(createdTime + 10分钟)&lt; currentTime的。

由于

1 个答案:

答案 0 :(得分:3)

应该是

{ $and:[{ "status":"open"},{"createdTime":{$lt:new Date().getTime() - (1000 * 60 * 10)}} ] }

该查询类似于where status=open && createdTime<(currentTime-10mins)

注意:createdTime+10mins < currentTime可以写为createdTime < currentTime-10 mins