我有访问用户的数据库,其中包含这样的 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来实现它,现在的问题是投影中的$size操作,因为Spring data API没有这样的,至少我在参考中没有找到它。
GroupOperation group = Aggregation.group("place_id").addToSet("user_id").as("setOfUsers");
ProjectionOperation project = Aggregation.project(). .... ?
也许还有任何方法可以创建 size 字段,而不是可以使用嵌套 api:
Aggregation.project().and("distinctUserCount").nested( ???);
任何帮助表示赞赏。