Получить документы из нескольких коллекций - PullRequest
0 голосов
/ 04 июля 2018

Я сохранил документы в Marklogic, как показано ниже,

Collection : system, user
Documents Stored
 1. /system/user/1
 2. /system/user/2

Collection : system, role
Documents Stored
 1. /system/role/1
 2. /system/role/2

Collection : system, access
Documents Stored
 1. /system/access/1
 2. /system/access/2

Теперь мое требование - я хочу, чтобы все документы, являющиеся только частью системы , получили доступ к коллекции , поэтому я попытался

for $doc in cts:search(collection(("system", "access")), ())
return 
      (  
        document-uri($doc)
      )

после выполнения приведенного выше кода здесь я ожидаю / system / access / 1 , / system / access / 2 , поскольку эти два документа являются только частью "system" , "доступ" коллекция, но здесь я получаю все документы от Коллекция: система, пользователь , Коллекция: система, роль . Я не могу неправильно понять код или я что-то упустил.

Пожалуйста, помогите мне решить эту проблему.

1 Ответ

0 голосов
/ 04 июля 2018

Проблема с вашим кодом, как показано ниже -

Все 6 документов, которые вы сохранили, являются частью коллекции " System ".

Так что, очевидно, всякий раз, когда вы пытаетесь передать collection ("system") , он будет извлекать все документы.

Другой сценарий может быть. Предположим, вы хотите получить документ, являющийся частью коллекции " user" и "access ". В этом случае вы можете использовать cts: and-query внутри cts: search query.

Надеюсь, что поможет!

...