我正在尝试获取一个不同元素的列表,作为我在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"
}
]
答案 0 :(得分:1)
添加两个步骤:
db.collection.aggregate([
{
$group: {
_id: "$_id",
data: {
$first: "$$ROOT"
}
}
},
{
$replaceRoot: {
newRoot: "$data"
}
}
])
Aggregation agg = newAggregation(
... // Your pipeline
group("_id").first("$$ROOT").as("data"),
replaceRoot("data")
);