デフォルトのドライバーではなく、mongoDb に Java 非同期ドライバーを使用しています
コレクション「collect」を含むデータベース「test」があり、各ドキュメントは以下の形式であり、時間は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();
ここでは、基準に従うリスト 'time' のみを取得するつもりでした。しかし、私はここで立ち往生しており、グーグルで検索しても役立つリンクがあまり見つかりませんでした。このリンクを参照して、上記のコードを実行しました。同じことを行う簡単な方法はありますか。
編集:そして、次のような ProgramTime オブジェクトのリストに値を追加したい
public class ProgramTime {
private Integer userId;
private Integer programId;
private Long time;
}