我正在为 mongoDb 使用 java 异步驱动程序,而不是默认驱动程序
我有一个带有集合“收集”的数据库“测试”,每个文档都采用下面给出的形式,其中时间是 10 位 unix 时间戳
{ "_id", "userId", "programId", "time" }
我想编写一个查询,它相当于下面给出的 sql 查询,其中 input1 是 unix 时间戳格式的当前时间,而 input2 是作为输入的 userId
SELECT *
FROM collect
WHERE time >= input1 AND userId = input2
ORDER BY time DESC
LIMIT 30
我做了这样的事情
collection = db.getCollection("ProgramBookings"); Long Datetimesatmp =
new Date().getTime() / 1000;
Aggregate.Builder builder = new Aggregate.Builder();
builder = (builder.match(where("time").
greaterThan(Datetimesatmp.toString()).and("userId") .equals(userId.toString())).sort(desc("time"))).limit(30);
Aggregate d1 = builder.build();
在这里,我只想检索遵循标准的列表“时间”。但我被困在这里,谷歌搜索后找不到太多有用的链接。我参考了这个链接来完成上面给定的代码。有没有一种简单的方法来做同样的事情。
编辑:我想将值添加到 ProgramTime 对象列表中,就像
public class ProgramTime {
private Integer userId;
private Integer programId;
private Long time;
}