java - 如何使用 Mongo 模板在 java 中进行聚合
问题描述
我是 MongoDB 的新手!
谁能帮助我如何编写java代码来转换下面的mongo聚合查询?目前,我正在以“spring-boot-starter-data-mongodb”作为依赖项的 Spring Boot 应用程序中编写此代码。我正在考虑使用 Mongo 模板通过以下查询获取分组文档。
db.getCollection('test').aggregate([
{
$group: {
_id: { name: "$name", zip: "$recipients.0.address.postalcode" },
groupedDocs: { $addToSet: "$$ROOT" }
}
}
]);
解决方案
使用 MongoTemplate 是正确的想法。您需要先像这样创建聚合:
var aggregation = Aggregation.newAggregation(
Aggregation.group(Fields.from(
Fields.field("name"),
Fields.field("zip", "recipients.0.address.postalcode")
)
).addToSet("$$ROOT")
);
当然,您可以使用静态导入使其更简洁,我是这样写的,这样您就可以更好地找到类。我不确定 $$ROOT 参考,你可能需要查一下。有了这个,你可以调用 MongoTemplate:
return mongoTemplate.aggregate(aggregation, "Test", Test.class);
推荐阅读
- javascript - 基于先前调用的响应的异步调用,避免回调地狱
- c# - 正则表达式验证 Windows UNC 路径
- java - 运行 mvn 原型时出错:生成
- c# - 使用动态注入类创建委托
- python - 将 Python str 转换为 C const char *
- c# - 如何为 C# 生成序列化器/反序列化器代码?
- java - Camel CxfEndpoint 拦截器失败
- thymeleaf - 带有迭代器的 Thymeleaf 条件
- reactjs - Formik 验证不适用于我的自定义 react-places-autocomplete 组件
- javascript - Instagram API 不会在 Visual Studio 之外加载 embed.js