mongodb - MongoTemplate 聚合获得不同的值
问题描述
我试图在 MongoTemplate 聚合函数中获取不同元素的列表作为我的最终结果。我在汇总的中间收到如下列表,
[
{
"_id":"333",
"name":"cat Three name",
"description":"cat item description"
},
{
"_id":"222",
"name":"cat Two name",
"description":"cat item description"
},
{
"_id":"222",
"name":"cat Two name",
"description":"cat item description"
},
{
"_id":"333",
"name":"cat Three name",
"description":"cat item description"
}
]
如何添加另一个 AggregationOperation 以获得不同的值作为我的最终结果,如下所示?
[
{
"_id":"222",
"name":"cat Two name",
"description":"cat item description"
},
{
"_id":"333",
"name":"cat Three name",
"description":"cat item description"
}
]
解决方案
添加两个步骤:
db.collection.aggregate([
{
$group: {
_id: "$_id",
data: {
$first: "$$ROOT"
}
}
},
{
$replaceRoot: {
newRoot: "$data"
}
}
])
春天-mongo
Aggregation agg = newAggregation(
... // Your pipeline
group("_id").first("$$ROOT").as("data"),
replaceRoot("data")
);
推荐阅读
- assembly - 如何找到编译器优化的内容?
- python - 根据条件从数据框中获取一列到另一个
- laravel - 用户的 Laravel 帖子在一列中,按行分隔,用户名在同一列的第一行
- python - 使用 TensorFlow 模型评估输入的简单方法?
- javascript - 将 Array<[string, number]> 字符串排序为日期
- android - Android中的setContentIntent和setFullScreenIntent有什么区别?
- typescript - 如何从 webpack 将 js 文件分组到子文件夹中?
- python - 熊猫如何将两行组合成具有复杂规则/条件的组
- maven - Maven Nexus V3 不能将 artifactory 用作远程仓库。我该如何解决这个问题?
- node.js - 听 EADDRINUSE:地址已经在使用中