[英]Normalized the Array structure into Multiple documents in mongoDB
輸入是一次文檔
{
"name": [
"abc",
"xyz"
],
"values": [
"123",
"100"
]
}
解釋我想將數組規范化為多個文檔, abc
和xyz
是動態來的,這些是用戶定義的參數
預計 Output
[
{
"data": {
"name": "abc",
"values": "123"
}
},
{
"data": {
"name": "xyz",
"values": "100"
}
}
];
您要做的是使用$zip ,如下所示:
db.collection.aggregate([
{
$project: {
data: {
$map: {
input: {
$zip: {
inputs: [
"$name",
"$values"
]
}
},
as: "zipped",
in: {
name: {
"$arrayElemAt": [
"$$zipped",
0
]
},
values: {
"$arrayElemAt": [
"$$zipped",
1
]
}
}
}
}
}
},
{
$unwind: "$data"
},
{
$replaceRoot: {
newRoot: {
data: "$data"
}
}
}
])
嘗試這個:
db.testCollection.aggregate([
{
$project: {
"data": {
$map: {
input: { $zip: { inputs: ["$name", "$values"] } },
as: "item",
in: {
name: { $arrayElemAt: ["$$item", 0] },
values: { $arrayElemAt: ["$$item", 1] }
}
}
}
}
},
{ $unwind: "$data" }
]);
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.