You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何永久保存通过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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.13 07:26:09