python-2.7 - 我想使用 Python 操作 MarkLogic 中的文件

标签 python-2.7 marklogic marklogic-8

declareUpdate();

//get Docs
myDoc = cts.doc("/heal/scripts/Test.json").toObject();

//add Data
myDoc.prescribedPlayer =
  [
    {
      "default": "http://www.youtube.com/watch?vu003dhYB0mn5zh2c"
    }
  ]

//persist
xdmp.documentInsert("/heal/scripts/Test.json",myDoc,null,"scripts")

最佳答案

您希望添加新的 JSON 属性。您可以使用 REST 客户端 API 请求来执行此操作,发送 a PATCH command 。使用an insert instruction在补丁中。

请参阅 Specifying Position in JSON 中的注释,这表明

You cannot use last-child to insert a property as an immediate child of the root node of a document. Use before or after instead. For details, see Limitations of JSON Path Expressions.

相反,您的补丁将类似于:

{
  "insert": {
    "context": "/topProperty",
    "position": "after",
    "content": 
      [
        {
          "default": "http://www.youtube.com/watch?vu003dhYB0mn5zh2c"
        }
      ],
  }
}

其中 topProperty 是一个 JSON 属性,它是要更新的 JavaScript 对象的根节点的一部分。

如果该方法有问题(例如,如果没有可靠可用的 topProperty),您还可以执行一系列操作:

使用这种方法,在您处理文档时,其他进程可能会更新该文档。您可以依靠 optimistic lockingmulti-statement transaction解决这个问题,具体取决于其他人进行写入的潜在后果。

关于python-2.7 - 我想使用 Python 操作 MarkLogic 中的文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42960930/

相关文章:

search - MarkLogic 变音符号不敏感片段

xml - 在 marklogic 中的多个集合之间查询时优化记录的检索

python-2.7 - OpenCV:无法加载 OpenCL 运行时

python - 在嵌套字典列表中添加平均值的键

java - MarkLogic Java API 死锁检测

marklogic - 下载文件,文件名

java - MarkLogic Java 客户端 API - 修补元数据和文档内容

python - 如果元组中的第一个值 = 1,则从字典值列表中删除元组

mysql - 将a列值更新为与python中特定id对应的b列

machine-learning - RDF 存储上的机器学习来检测模式