首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >将JSON-Patch转换为MarkLogic JSON补丁规范?

将JSON-Patch转换为MarkLogic JSON补丁规范?
EN

Stack Overflow用户
提问于 2019-08-15 10:06:59
回答 1查看 140关注 0票数 4

JSON PATCH API使用的JSON patch specification与MarkLogic -Path标准(RFC 6902)非常相似,但并不完全相同。例如,要将节点添加到以下文档中:

代码语言:javascript
复制
{
  "parent": {
    "child1": "c1-value",
    "child2": "c2-value"
  }
}

MarkLogic补丁:

代码语言:javascript
复制
{
  "insert": {
    "context": "/parent",
    "position": "last-child",
    "content": { "child3": "c3-value" }
  }
}

JSON-Patch标准:

代码语言:javascript
复制
{
  "op": "add",
  "path": "/parent/child3",
  "value": "c3-value"
}

有没有办法自动将JSON补丁转换成MarkLogic补丁?我的想法是利用json-patch-gen等库自动生成JSON-Patch操作,并将它们转换为MarkLogic补丁以更新MarkLogic中的文档。

或者,有没有JavaScript库可以通过比较两个MarkLogic对象来自动生成JavaScript补丁?

EN

回答 1

Stack Overflow用户

发布于 2019-08-15 22:53:24

虽然RFC影响了MarkLogic补丁规范,但RFC的一些规定与MarkLogic不匹配。

  • JSON指针具有与MarkLogic XPaths over JSON不同的选择语义,例如选择容器数组节点而不是项目节点。(另外,如果我没记错的话,JSON指针不支持XPath predicates.)
  • Where。MarkLogic中的补丁操作必须是无关的,并且适用于任何顺序,JSON patch需要顺序转换。如RFC中所述:

序列中的每个操作都将应用于目标文档;生成的文档将成为下一个操作的目标。

  • 不支持在用户定义的服务器端代码中实现插入或替换操作。对于JSON和XML,
  • MarkLogic修补程序规范必须一致。

可以将以JSON patch RFC语法的子集表示的补丁转换为使用MarkLogic补丁功能子集的MarkLogic补丁规范。

然而,这种最小公分母的方法会增加成本,为bug创造机会,并放弃MarkLogic的一些功能。

除非将相同的补丁应用于其他数据存储中的内容,否则要求转换可能没有太多好处。

希望能派上用场

票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/57504075

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档