MarkLogic - поиск по пути объекта JSON (без использования индекса диапазона пути) - PullRequest
1 голос
/ 12 апреля 2019

MarkLogic: 9,0-6,2

У нас есть документ JSON, как показано ниже, в сущности клиента.

"CustomerInfo": {
  "IdInfo": {
     "CustomerId":"12345"
  }, 
  "PartyRltp": {
      "CustomerId":"45678"
  }
}

Мне нужно найти документ на основе CustomerId по указанному пути CustomerInfo.IdInfo.CustomerId

Так что, если я ищу «12345», вышеупомянутый документ должен быть возвращен. Но если я выполню поиск с помощью «45678», вышеуказанный документ НЕ должен возвращаться.

Я создал индекс диапазона пути и использовал cts.pathRangeQuery ('/ CustomerInfo / IdInfo / CustomerId', '=', '12345'). Однако понял, что индексы диапазона пути очень дороги, поэтому искал способ достичь без индекса диапазона пути.

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

1 Ответ

3 голосов
/ 12 апреля 2019

Я думаю, что вы ищете cts.jsonPropertyScopeQuery:

cts.jsonPropertyScopeQuery(
  'IdInfo',
  cts.jsonPropertyValueQuery(
    'CustomerId',
    '12345'
  )
)

НТН!

...