gpt4 book ai didi

arrays - 如何在 MongoDB 聚合中合并来自多个文档的数组而不重复?

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

我有 3 个文档:

{
"id": 1,
"user": "Brian1",
"configs": [
"a",
"b",
"c",
"d"
]
}

----

{
"id": 2,
"user": "max_en",
"configs": [
"a",
"h",
"i",
"j"
]
}

----

----

{
"id": 3,
"user": "userX",
"configs": [
"t",
"u",
"s",
"b"
]
}

我想将所有“configs”数组合并到一个数组中,不重复,如下所示:

{
"configs": [
"a",
"b",
"c",
"d",
"h",
"i",
"j",
"t",
"u",
"s",
]
}

我尝试过以下方法:

Aggregation.group("").addToSet("configs").as("configs"){ _id: "", 'configs': { $addToSet: ' $configs' } }

第一个给出错误,因为我将字段名留空(我不知道该放什么)。

第二个返回一个合并数组,但有重复项。

最佳答案

当你想对所有文档进行分组时,需要添加{_id: null}

表示对所有文档进行分组。

可能您需要this

db.collection.aggregate([
{
"$unwind": "$configs"
},
{
$group: {
_id: null,
configs: {
"$addToSet": "$configs"
}
}
}
])

但是当您需要在没有匹配的较大集合上使用时要小心。

关于arrays - 如何在 MongoDB 聚合中合并来自多个文档的数组而不重复?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/70880439/

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