我有JSON文档列中的一个表,其结构如下:-
{
"root":[{"MCR":"MCR_1",
"MCR_COLUMNS":{
"MCR_COLUMN_1":"ABC1",
"MCR_COLUMN_2":"ABC2"
}
},
{"MCR":"MCR_2",
"MCR_COLUMNS":{
"MCR_COLUMN_1":"XYZ1",
"MCR_COLUMN_2":"XYZ2"
}
}
]
}
现在,我想在此文档中编写一个merge语句来管理两种情况
CASE-1)如果MCR值已存在于文档中,则直接将MCR_COLUMN_x及其值附加到其MCR_COLUMNS的JSON对象中。例如,我想附加
{"MCR":"MCR_1",
"MCR_COLUMNS":{
"MCR_COLUMN_3":"ABC3"
}
}
因此,更新后的文档应
{
"root":[{"MCR":"MCR_1",
"MCR_COLUMNS":{
"MCR_COLUMN_1":"ABC1",
"MCR_COLUMN_2":"ABC2",
"MCR_COLUMN_3":"ABC3"
}
},
{"MCR":"MCR_2",
"MCR_COLUMNS":{
"MCR_COLUMN_1":"XYZ1",
"MCR_COLUMN_2":"XYZ2"
}
}
]
}
CASE-2)如果MCR值不存在,则将新JSON对象附加到根数组中。例如:如果我想附加
{"MCR":"MCR_3",
"MCR_COLUMNS":{
"MCR_COLUMN_1":"UVW1",
"MCR_COLUMN_2":"UVW2"
}
}
则更新后的文档应
{
"root":[{"MCR":"MCR_1",
"MCR_COLUMNS":{
"MCR_COLUMN_1":"ABC1",
"MCR_COLUMN_2":"ABC2"
}
},
{"MCR":"MCR_2",
"MCR_COLUMNS":{
"MCR_COLUMN_1":"XYZ1",
"MCR_COLUMN_2":"XYZ2"
}
},
{"MCR":"MCR_3",
"MCR_COLUMNS":{
"MCR_COLUMN_1":"UVW1",
"MCR_COLUMN_2":"UVW2"
}
}
]
}
我尝试过JSON_mergepatch和JSON_Transform,但无法实现第一种情况。由于我无法事先了解MCR是否已存在,因此我无法仅为第二种情况提供正确的解决方案。如有任何帮助或建议,我们将不胜感激。
1条答案
按热度按时间63lcw9qa1#
要检查MCR值是否存在:
将项目添加到MCR_COLUMNS
要将项目添加到根数组: