在 MongoDB 中的数组中连接数组
Concatenate arrays in an array in MongoDB
我目前在 MongoDB 中有一个字段,它是一个数组列表。我想将所有这些转换成一个字符串,但我首先需要(我猜?)在转换之前将我的数组列表连接成一个数组。
这是我的字段的样子:
"SitesList" : [
[
"553550",
"496573",
"496574"
],
[
"553550",
"496573",
"496574"
],
[
"527772",
"565085"
],
[
"565085",
"563248"
],
[
"496576"
]
]
这是我到目前为止尝试连接它的方法(使用 concatArrays
),但它不起作用:
{ $addFields: {"Sites": { $concatArrays: ["$tdb.Data.site.list"]}}},
以及我最终想做的是将最终数组转换为字符串:
SitesList: {
$reduce: {
input: "$Sites",
initialValue: "",
in: {$concat: ["$$value",",", {$toString:"$$this"}]}
}
},
有人可以帮助我吗? :)
提前致谢!
你可以试试,
$reduce
在单个数组中获取 concat 数组,其他 $reduce
使用 $concat
和 $substr 将数组转换为字符串以从中删除多余的 ,
字符串的开头,
db.collection.aggregate([
{
$addFields: {
SitesList: {
$substr: [
{
$reduce: {
input: {
$reduce: {
input: "$SitesList",
initialValue: [],
in: { $concatArrays: ["$$this", "$$value"] }
}
},
initialValue: "",
in: { $concat: ["$$value", ",", "$$this"] }
}
},
1,
-1
]
}
}
}
])
我目前在 MongoDB 中有一个字段,它是一个数组列表。我想将所有这些转换成一个字符串,但我首先需要(我猜?)在转换之前将我的数组列表连接成一个数组。
这是我的字段的样子:
"SitesList" : [
[
"553550",
"496573",
"496574"
],
[
"553550",
"496573",
"496574"
],
[
"527772",
"565085"
],
[
"565085",
"563248"
],
[
"496576"
]
]
这是我到目前为止尝试连接它的方法(使用 concatArrays
),但它不起作用:
{ $addFields: {"Sites": { $concatArrays: ["$tdb.Data.site.list"]}}},
以及我最终想做的是将最终数组转换为字符串:
SitesList: {
$reduce: {
input: "$Sites",
initialValue: "",
in: {$concat: ["$$value",",", {$toString:"$$this"}]}
}
},
有人可以帮助我吗? :) 提前致谢!
你可以试试,
$reduce
在单个数组中获取 concat 数组,其他$reduce
使用$concat
和 $substr 将数组转换为字符串以从中删除多余的,
字符串的开头,
db.collection.aggregate([
{
$addFields: {
SitesList: {
$substr: [
{
$reduce: {
input: {
$reduce: {
input: "$SitesList",
initialValue: [],
in: { $concatArrays: ["$$this", "$$value"] }
}
},
initialValue: "",
in: { $concat: ["$$value", ",", "$$this"] }
}
},
1,
-1
]
}
}
}
])