作者热门文章
- mongodb - 在 MongoDB mapreduce 中,如何展平值对象?
- javascript - 对象传播与 Object.assign
- html - 输入类型 ="submit"Vs 按钮标签它们可以互换吗?
- sql - 使用 MongoDB 而不是 MS SQL Server 的优缺点
我的 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/
我是一名优秀的程序员,十分优秀!