我无法弄清楚如何编写一些 XQuery。我在 MarkLogic 中有一个 JSON 结构,如下所示:
{
"id": "pres003A10",
"title": "A Course About Something",
"description": "This course teaches people about some things they may not know.",
"author": "A.N. Author",
"updated": "2007-01-19",
"decks": [
{
"id":"really-basic-stuff",
"exclude": ["slide3", "slide12"]
},
{
"id":"cleverer-stuff",
"exclude": []
}
]
}
该exclude
数组包含幻灯片中幻灯片的标识符(演示文稿由一张或多张幻灯片组成)。我正在尝试编写一段代码,它将在该排除列表中查找幻灯片 ID,如果存在则将其删除,如果不存在则将其添加(切换)。
我可以使用以下方法获取数组节点本身:
let $exclude := doc('/presentations/presentation.json')/object-node()/decks[id = 'markup-intro']/array-node('exclude')
但我无法终生看到我如何更新该数组以删除或添加项目。目的是调用一个类似的函数:
local:toggle-slide($presentation) as object-node()
{
(: xdmp:node-update(...) goes here :)
};
那么,如何更新该数组?