MarkLogic - 带有 extract-document-data 的查询选项

MarkLogic - Query Options with extract-document-data

MarkLogic 版本 9.0-6.2

我正在尝试使用查询选项中的 extract-document-data 提取信封的一部分(下面给出的示例)。

{
  "envelope": {
    "headers": {
      "audit": {
        "created-by": "admin", 
        "last-updated-by": "*******"
      }
    }, 
    "instance": {
       "UserId": "Test1",
       "UserName":"TestName"
       "Phones":[
         {
           "PhoneType":"Home",
           "PhoneNum":"18009897800"
         },
         {
           "PhoneType":"Cell",
           "PhoneNum":"1239897800"
         }
       ]
    }
  }
}

我的要求只是 return UserId 和 UserName。所以我在选项文件中尝试了以下代码。

"extract-document-data":
          {
          "selected": "exclude",
          "extract-path": [ "/envelope/instance/Phones" ]
          },
"extract-document-data":
          {
          "selected": "include",
          "extract-path": [ "/envelope/instance" ]
          }

我收到如下回复

{
"instance": {
       "UserId": "Test1",
       "UserName":"TestName"
       "Phones":[
         {
           "PhoneType":"Home",
           "PhoneNum":"18009897800"
         },
         {
           "PhoneType":"Cell",
           "PhoneNum":"123989780"
         }
       ]
    }
}

此代码不排除"Phones"属性。此外,returning "instance" 属性 在输出中,但我只需要 UserId 和 UserName。

如何在同一个选项文件中编写排除和包含代码?此外,在包含路径中,我如何仅指定要 returned 的后代(在我的例子中,"instance" 属性.

的后代

提前致谢!

响应是否使用类似于以下的规范提取了正确的数据?

"extract-document-data": {
      "selected": "include",
      "extract-path": [
          "/envelope/instance/(UserId|UserName)"
          ]
      }

希望对您有所帮助,