私は形式で文書を保存したMongoDBのデータベースを照会:で、特定の日付のために(もしあれば)データベース内のレコードの数を取得する方法の作成複数のMongoDBの春データ集約は
{
"achievement": [
{
"userFromId":"max",
"userToId":"peter",
"date":"2016-01-25",
"pointCount":1,
"description":"good work",
"type":"THANKS"
}
]
}
人々は他の人々に感謝しています。 私がデータを取得するクエリを作成:
DBObject clause1 = new BasicDBObject("userFromId", userFromId);
DBObject clause2 = new BasicDBObject("userToId", userToId);
DBObject clause3 = new BasicDBObject("sendDate", localDate);
DBObject clause4 = new BasicDBObject("type", Thanks);
BasicDBList or = new BasicDBList();
or.add(clause1);
or.add(clause2);
or.add(clause3);
or.add(clause4);
DBObject query = new BasicDBObject("$or", or);
しかし、私はレコード数を取得する方法と、集約を使用してクエリを書き換えることができます方法がわかりませんか? 例:
Aggregation aggregation = Aggregation.newAggregation(
Aggregation.group("userFromId")
.first("userFromId").as("userFromId")
.sum("pointCount").as("pointCount"));
パラメータを追加する方法がわかりません。 データベースへのデータが存在しない場合の戻り値は何ですか?
ありがとうございました
を使用して
あなたが期待される出力を追加することはできますか?なぜあなたは集計を使いたいのですか? – Veeram
真偽をチェックする必要があります 私はリストを介してそれを作ろうと考えました そして、コレクションにデータがあるかどうかを確認してください。 – Garazd