MarkLogic - Xpath в документе JSON - PullRequest
       9

MarkLogic - Xpath в документе JSON

0 голосов
/ 07 ноября 2018

MarkLogic Версия: 9.0-6.2

Я пытаюсь применить Xpath в extract-document-data (используя Query Options) для документа JSON, показанного ниже. Мне нужно отфильтровать свойство «Channel», если нижнее свойство «OptIn» имеет значение «True».

    {
        "Category":
          {
            "Name": "Severe Weather",
            "Channels":[
              {
                "Channel":
                  {
                    "Name":"Email",
                    "OptIn": "True"
                  }
              },
              {
                "Channel":
                  {
                    "Name":"Text",
                    "OptIn": "False"
                  }
              }
             ]
          }
      }

Я попробовал приведенный ниже код,

'<extract-document-data selected="include">'  +
'<extract-path>//*[OptIn="True"]/../..</extract-path>' +
'</extract-document-data>' +

, который извлекает только из свойства "Channel", как показано ниже.

  [
    {
      "Channel": {
      "Name": "Email",
      "OptIn": "True"
      }
    }
  ]

Но мне нужно извлечь из родительского свойства "Категория", но отфильтровать каналы, которые имеют значение OptIn как False.

Есть указатели?

1 Ответ

0 голосов
/ 07 ноября 2018

Если я правильно понимаю, вы хотите извлечь «Category», но только с теми «Channels», у которых «OptIn» равно «true», верно?

Extract-document-data недостаточно развита для этого. Лучше всего извлечь целые категории, которые имеют хотя бы один OptIn, равный true (// Category [// OptIn = 'true']), и использовать преобразование REST в ответе на поиск, чтобы обрезать нежелательные каналы.

НТН!

...