このように place_id と user_id を含む場所への訪問ユーザーのデータベースがあります
{place_id : 1, user_id : 1}
{place_id : 1, user_id : 1}
{place_id : 1, user_id : 2}
{place_id : 2, user_id : 3}
{place_id : 2, user_id : 3}
そして、それぞれの場所で異なるユーザー数を取得したいと考えています。最終的に、次のネイティブ mongo アグリゲーションになりました。
db.collection.aggregate([{
$group: {
_id: "$place_id",
setOfUsers: {
$addToSet: "$user_id"
}
}
}, {
$project: {
distinctUserCount: {
$size: "$setOfUsers"
}
}
}])
そして今、私はSpring Dataを使用してそれを実装したいと思っています.SpringデータAPIにはそのようなものがないため、少なくとも私はそれを参照していません.
GroupOperation group = Aggregation.group("place_id").addToSet("user_id").as("setOfUsers");
ProjectionOperation project = Aggregation.project(). .... ?
ネストされた API を使用できるよりも、サイズ フィールドを作成する方法もあるかもしれません。
Aggregation.project().and("distinctUserCount").nested( ???);
どんな助けでも大歓迎です。