2016-03-01 145 views
1

我是MongoDB的新手,不确定如何实现以下。 一个从收集的文件,mongodb java查询where子句的日期

{ 
    "_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分钟)< currentTime的。

感谢

回答

2

应该

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

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

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

+0

这个答案被接受被写入。但想知道如何使用查询中的字段createdTime + 10mins。 – user1578872

+0

你能详细说一下吗? – Mansoor