MongoTemplate 项目对象作为一个对象的列表
MongoTemplate project Object as List of one Object
我正在使用 spring MongoTemplate,我有如下对象
主要对象,
{
id: "001",
name: "one",
age: 12,
hobby: "a"
}
{
id: "001",
name: "one",
age: 12,
hobby: "b"
}
投影结果,
{
id: "001",
name: "one",
hobbyList: ["a", "b"]
}
这是我目前使用的聚合。它不起作用,我不知道如何组合这两个对象。我该如何解决这个问题?
mongoTemplate.aggregate(newAggregation(project("user.id","user.name")
.and("hobby").as("hobbyList")), "User", User.class).getMappedResults();
可以使用group
和project
操作来实现,
首先,我们将 group
id、name、age 在 _id
属性下,并将所有常见的 hobbies
推送到 hobbyList
属性。
然后用project
就是拉出所有分组的结果排除_id
newAggregation(
Aggregation.group("id", "name", "age").push("hobby").as("hobbyList"),
Aggregation.project("_id.id", "_id.name", "_id.age", "hobbyList").andExclude("_id")
)
我正在使用 spring MongoTemplate,我有如下对象
主要对象,
{
id: "001",
name: "one",
age: 12,
hobby: "a"
}
{
id: "001",
name: "one",
age: 12,
hobby: "b"
}
投影结果,
{
id: "001",
name: "one",
hobbyList: ["a", "b"]
}
这是我目前使用的聚合。它不起作用,我不知道如何组合这两个对象。我该如何解决这个问题?
mongoTemplate.aggregate(newAggregation(project("user.id","user.name")
.and("hobby").as("hobbyList")), "User", User.class).getMappedResults();
可以使用group
和project
操作来实现,
首先,我们将 group
id、name、age 在 _id
属性下,并将所有常见的 hobbies
推送到 hobbyList
属性。
然后用project
就是拉出所有分组的结果排除_id
newAggregation(
Aggregation.group("id", "name", "age").push("hobby").as("hobbyList"),
Aggregation.project("_id.id", "_id.name", "_id.age", "hobbyList").andExclude("_id")
)