在couchbase中更新高度嵌套的文档

swvgeqrz  于 2021-06-17  发布在  Mysql
关注(0)|答案(1)|浏览(340)

我有一个包含多层次结构的文档。像这样:

{
  "id": "520707438",
  "pageURIHash": "3988665684",
  "children": [],
  "parentId": null,
  "content": "Here is a parent comment"
}

children数组可以有其他子注解作为json对象,并且每个子对象又可以有其他子对象。因此,这形成了高度嵌套的结构。
现在,假设我想将子注解添加到 ID 作为 123456745 . 我假设我知道根级别的注解(这样我就可以使用 USE KEYS 我的 N1ql 查询)。如何提取 children 与具有该特定id的注解相对应的数组,并向其附加新注解?我可以使用子文档api,但它要求我知道路径,在这种情况下,我不知道它。
我做了一些研究,提出了这个问题:

"UPDATE default d use keys \"" + comment.getRootCommentId()
           + "\" SET (??? How do I get the existing array and append to it) FOR p WITHIN d.children WHEN p.id = \"" + comment.getId() + "\" END";

谢谢!!

webghufk

webghufk1#

这应该是你想要的:

update default d use keys "foo"
SET p.children = ARRAY_APPEND(p.children, {
  "id": "20202020",
  "pageURIHash": "99999",
  "children": [],
  "parentId": null,
  "content": "New Stuff"
}) FOR p WITHIN d.children WHEN p.id = "520707440" END

相关问题