xquery - 使用 Xquery 在 Marklogic 中实现信封模式?

标签 xquery marklogic

我想在我的 json 数据中实现信封模式。我的数据看起来像这样

{
"id": "1", 
"first_name": "Shawn", 
"last_name": "Grant", 
"email": "sgrant0@51.la", 
"country": "Liberia", 
"ip_address": "37.194.161.124"
}

我想像这样实现信封模式

{
"envelope": { 
 "Code" : "2023"
}, 
"source": {
"id": "1", 
"first_name": "Shawn", 
"last_name": "Grant", 
"email": "sgrant0@51.la", 
"country": "Liberia", 
"ip_address": "37.194.161.124"
}
}

我尝试了下面的 xquery 代码,但运行不顺利

xquery version "1.0-ml";
let $doc := fn:collection("transform")
for $i in $doc 
let $object := json:object() --> I am struck here because i dont know how to create a envelope header
let $source := $i
return $source

感谢任何帮助

谢谢

最佳答案

如果您习惯了 XML,JSON 节点映射到 MarkLogic 中的 XQuery 数据模型的方式并不总是直观的。通常,直接使用对象节点可以减少混淆:

for $doc in fn:collection("transform")
let $source := $doc/object-node()
let $envelope := 
  object-node { 
    "Code" : "2023"
  } 
return object-node {
  "envelope" : $envelope,
  "source" : $source
}

关于xquery - 使用 Xquery 在 Marklogic 中实现信封模式?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48285338/

相关文章:

xquery - 在 oXygen 中运行 XQuery : Can't access Nodes Within a Document Node

xquery - 有人可以解释一下外部变量在 XQuery 中是如何工作的吗?

java - 由于 XQuery 持续时间过长导致的内部服务器错误 (MarkLogic)

javascript - Marklogic 是否有编写 javascript 代码的框架?

xml - Marklogic xdmp :log() in Query Console

mysql - XQuery:如何检查两个属性是否具有相同的值?

java - xquery 新手 - 如何向我的 java 应用程序添加对 xqueryfunctions.com 上的自定义 Xquery 函数的支持

xml - 在具有命名空间的函数中查询 XML 数据

node.js - MarkLogic 示例查询返回不正确的结果

xquery - 什么是 MarkLogic 查询控制台中的属性选项卡