如何通过在 MarkLogic 中传递 URI 和集合名称来搜索文档?

How to search doucments by passing URI and collections names in MarkLogic?

我想在 javascript 中构造一个搜索查询,我在其中传递一个文档的 URI 及其集合名称,以便我可以将文档作为输出 (JSON).

我尝试了 fn.doc、cts.doc 等,但我找不到如何在其中使用集合名称。

您可能不需要复杂的 cts 查询:

let collections = xdmp.documentGetCollections('test.json')

if(collections.includes('test')) {
  fn.doc('test.json')
} else {
  "not found"
}

只需使用 xdmp.documentGetCollections 阅读文档集合并测试它是否包含您的集合。之后 return 它与 fn.doc.

URI 应该足以获取文档。如果您想将其作为查询来执行,请使用 cts.documentQuery(uri)。如果你想确保它也有特定的集合,你可以在 cts.collectionQuery(collections) 中,比如:

cts.andQuery([cts.collectionQuery(collections),cts.documentQuery(uri)])