在XQuery和Marklogic 8中更新JSON

时间:2016-06-02 21:43:05

标签: json xquery marklogic marklogic-8

我在Marklogic中存储了一个足够简单的JSON文档:

my $body = $in{article};

my $stmt = $db->prepare(<<END_SQL);
INSERT INTO news_articles (createdate, userid, status, title, inline, content, attribution, pending)
VALUES (UNIX_TIMESTAMP(), ?, ?, ?, ?, ?, ?, ?)
END_SQL

$stmt->execute($user->{'uid'}, 0, $title, $pullquote, $body, $attr, 0);

有没有办法可以使用Xquery函数添加一个新字段,这样我的文档和对象最终会看到这个?

{ "title": "mytitle", "edition": "1" }

显然支持通过xdmp进行JSON操作:node-replace,xdmp:insert-child-after等在此处的文档中找到:https://docs.marklogic.com/guide/app-dev/json#id_60123

我上面运气不好。有什么建议吗?

1 个答案:

答案 0 :(得分:4)

当您只需要插入属性时,首先必须将属性/值包装在object-node中,然后选择属性child:

xdmp:node-insert-child(
  doc('/mydoc.json')/node(),
  object-node { "date": "2016-01-01" }/date)