gpt4 book ai didi

ruby - 如何在 mongoDB 中展平双数组?

转载 作者:IT老高 更新时间:2023-10-28 13:35:26 25 4
gpt4 key购买 nike

我的 mongoDB 文档中的一些字段如下所示:

{
...
Countries: [["Spain", "France"]]
...
}

或者这个:

{
...
Countries: [["Spain"],["Russia", "Egypt"]]
...
}

我要做的是把 [["Spain", "France"]] 变成 ["Spain", "France"] [["Spain"],["Russia", "Egypt"]] 转换成 ["Spain", "Russia", "Egypt"],类似于使用 Ruby 中的 flatten 方法。

有没有办法在 mongoDB 中展平数组?我需要展平整个集合中所有文档中的数组,而不仅仅是单个文档,如果这很重要,那么数组中的值及其数量也会因文档而异。

我也在使用 Ruby 作为 mongo 的驱动程序,因此使用 Ruby 驱动程序的方法对我也很有用。

最佳答案

在 Mongo 3.4+ 中,您可以使用 $reduce 来展平二维数组。

db.collection.aggregate(
[
{
$project: {
"countries": {
$reduce: {
input: '$Countries',
initialValue: [],
in: {$concatArrays: ['$$value', '$$this']}
}
}
}
}
]
)

文档:https://docs.mongodb.com/manual/reference/operator/aggregation/reduce/

关于ruby - 如何在 mongoDB 中展平双数组?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27735382/

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