MarkLogic - параметры запроса с извлечением-документа-данных - PullRequest
0 голосов
/ 05 декабря 2018

MarkLogic версия 9.0-6.2

Я пытаюсь извлечь часть конверта (пример приведен ниже), используя extract-document-data в параметрах Query.

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

Мое требованиепросто вернуть 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"
         }
       ]
    }
}

Этот код не исключает свойство "Телефоны".Кроме того, возвращая свойство «instance» в выводе, но мне просто нужны UserId и UserName.

Как можно кодировать как исключать, так и включать в один и тот же файл опций?Кроме того, в пути включения, как мне указать только потомков, которые будут возвращены (в моем случае, потомки свойства "instance".

Заранее спасибо!

1 Ответ

0 голосов
/ 05 декабря 2018

Извлекает ли ответ правильные данные со спецификацией, подобной следующей?

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

Надеясь, что помогает,

...