如何解决Spring Boot 聚合与字符串操作修剪
如何将下面的 MongoDB 操作写入 Java Springboot 代码中?
db.collection.aggregate({
"$group": {
_id: {
$trim: {
input: "$name"
}
},doc: {
"$first": "$$ROOT",}
}
},{
"$replaceRoot": {
"newRoot": "$doc"
}
})
解决方法
希望您使用的是 mongo 模板。您可以使用 BSON 方法。 TRICK TO CONVERT MONGO SHELL QUERY
public List<Object> test() {
Aggregation aggregation = Aggregation.newAggregation(
p-> new Document("$group",new Document("_id",new Document("$trim",new Document("input","$name")
)
).append("doc",new Document("$first","$$ROOT")
)
),replaceRoot("doc")
).withOptions(AggregationOptions.builder().allowDiskUse(Boolean.TRUE).build());
return mongoTemplate.aggregate(aggregation,mongoTemplate.getCollectionName(YOUR_COLLECTION.class),Object.class).getMappedResults();
}
但你也可以试试这个。请确保这是有效的
public List<Object> test() {
Aggregation.newAggregation(
group("$_id".trim()).first("$$ROOT").as("doc"),replaceRoot("doc")
)
).withOptions(AggregationOptions.builder().allowDiskUse(Boolean.TRUE).build());
return mongoTemplate.aggregate(aggregation,Object.class).getMappedResults();
}
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。