XQuery操作JSON:添加数组对象遇XDMP-CHILDDUPNAME错误求助
一步实现向JSON文档根节点添加带数组的新属性
直接构造带名称的节点并插入,无需分两步操作。使用named-node()函数创建指定名称的属性节点,其值设为目标数组节点,再通过xdmp:node-insert-child()插入到根对象节点即可:
xdmp:node-insert-child( $doc/object-node(), named-node("A", array-node{"B", "C"}) )
错误原因解析
你之前的代码错误在于从临时创建的object-node中提取子节点(/ConfiscatedItems)再插入,这种方式会导致节点上下文处理异常,触发XDMP-CHILDDUPNAME错误。直接构造独立的named-node可以避免该问题,因为它明确指定了属性名称和对应的值节点,插入时会直接作为新属性添加到目标JSON对象中。
验证效果
执行上述代码后,示例文档会被修改为:
{ "f": "g", "h": 1, "q": [ 1, 2 ], "A": [ "B", "C" ] }
内容的提问来源于stack exchange,提问作者supersteve
相关产品推荐
相关产品推荐

