我是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的。
由于
答案 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