2016-03-01 84 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