gpt4 book ai didi

java - mongoDB中按ID分组

转载 作者:行者123 更新时间:2023-12-02 03:22:08 24 4
gpt4 key购买 nike

任何人都可以帮助我在 mongodb 中进行以下聚合操作:拥有带有 id 和组 id 的项目集合,并按组 id 对其进行分组。例如,对于项目集合:

{
"id": 1,
"group_id": 10,
"data": "some_data",
"name": "first"
},
{
"id": 2,
"group_id": 10,
"data": "some_data",
"name": "second"
},
{
"id": 3
"group_id": 20,
"data": "some_data",
"name": "third"
}

创建具有以下结构的新组集合:

    {
"id": 10,
"items": [
{
"id": 1,
"group_id": 10,
"data": "some_data",
"name": "first"
},
{
"id": 2,
"group_id": 10,
"data": "some_data",
"name": "second"
}
]
},
{
"id": 10,
"items": [
{
"id": 2,
"group_id": 20,
"data": "some_data",
"name": "third"
}
]
}

Java 和 spring-data-mongodb 的相应片段也将受到赞赏。事实上,我现在正在使用 Java 做同样的事情,并希望将此逻辑移至 mongo 以进行分页优化。

最佳答案

您可以使用以下简单的 group 来完成此操作聚合:

db.table.aggregate(
[
{
$group: {
_id : "$group_id",
items : { "$push" : "$$ROOT" }
}
}
]
);

当您想要将聚合中的数据输出到新集合中时,请使用 $out运算符

关于java - mongoDB中按ID分组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39467806/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com