java这个本机Mongo聚合管道的Spring等价物是什么?
我有下面的原生Mongo聚合管道,它提供了我所需要的东西
db.getCollection('CONFIG').aggregate([
{'$match': {_id: 'COLLECTIONS_META'}},
{'$unwind': '$value'},
{'$group': {'_id': 'COLLECTION_NAMES', 'value': {'$push': '$value.suffix'}}}
])
然而,由于我必须在Spring聚合管道中编写这篇文章,我所能想到的就是以下内容
Aggregation.newAggregation(
Aggregation.match(Criteria.where("_id")
.is("COLLECTIONS_META")),
Aggregation.unwind("value"),
Aggregation.group().push("value.suffix").as("value"),
Aggregation.project("value")
.and("COLLECTION_NAMES")
.asLiteral()
.as("_id")
);
如您所见,这实际上不是本机管道的等价物。当Spring管道转换为其本机对应管道时,这一点很明显
{
"aggregate":"__collection__",
"pipeline":[
{
"$match":{
"_id":"COLLECTIONS_META"
}
},
{
"$unwind":"$value"
},
{
"$group":{
"_id":null,
"value":{
"$push":"$value.suffix"
}
}
},
{
"$project":{
"value":1,
"_id":{
"$literal":"COLLECTION_NAMES"
}
}
}
]
}
我错过了什么?我想省略我在管道的Spring版本末尾所做的投影
共 (0) 个答案