如何永久保存通过object-node构造并新增键值对的JSON至MarkLogic?
如何将生成的JSON永久保存到MarkLogic数据库
原代码仅生成JSON输出但未执行数据库写入操作,要实现永久保存,需使用MarkLogic的文档插入函数xdmp:document-insert(),以下是具体实现方案:
方案一:基于Map结构插入
直接在构建完目标数据结构后,调用插入函数写入数据库:
let $outputMap := map:with( xdmp:from-json( object-node { "status": "success", "categories": "cat" } ), "str", "xyz" ) return xdmp:document-insert( "/my-saved-json-document.json", # 自定义文档的唯一URI $outputMap, # 要保存的JSON数据结构(Map会自动序列化为JSON文档) xdmp:default-permissions(), # 使用默认权限,可按需自定义权限规则 xdmp:default-collections() # 加入默认集合,也可指定自定义集合如("my-data-collection") )
方案二:直接构建JSON节点插入
跳过Map转换步骤,直接构建完整的JSON节点后插入,代码更简洁:
let $outputNode := object-node { "status": "success", "categories": "cat", "str": "xyz" } return xdmp:document-insert( "/my-saved-json-document.json", $outputNode )
关键注意点
xdmp:document-insert()是MarkLogic写入文档的核心函数,第一个参数必须是唯一的文档URI,避免覆盖已有文档;若需自动生成URI,可使用xdmp:random-uri()- 执行代码的用户需具备目标数据库的写入权限
- 如果需要更新已有文档,可直接用相同URI调用
xdmp:document-insert()覆盖,或使用xdmp:node-replace()进行局部更新
内容的提问来源于stack exchange,提问作者Abid Hussain
相关产品推荐
相关产品推荐

