如何查询MarkLogic中指定documentID所属的集合
MarkLogic 根据文档ID查询所属集合的方法
单文档查询
针对单个documentID,直接调用内置API即可获取所属集合:
- XQuery 语法:
xdmp:document-get-collections("替换为你的documentID")
返回值为该文档所属的所有集合的序列。 - Server-Side JavaScript 语法:
xdmp.documentGetCollections("替换为你的documentID")
返回值为包含所有集合名的数组。
批量查询(适配文档ID列表场景)
如果手头有大量documentID需要批量查询,直接遍历ID列表调用API即可,以下是可直接复用的代码示例:
XQuery 批量查询示例
let $docIds := ("doc1.xml", "doc2.json", "doc3.bin") (: 替换为你自己的documentID列表 :) for $id in $docIds return object-node { "documentID": $id, "collections": xdmp:document-get-collections($id) }
JavaScript 批量查询示例
const docIds = ["doc1.xml", "doc2.json", "doc3.bin"]; // 替换为你自己的documentID列表 docIds.map(id => ({ documentID: id, collections: xdmp.documentGetCollections(id) }))
注意事项
- 若传入的documentID不存在,上述API会返回空序列/空数组,可自行补充判断逻辑过滤无效ID
- 涉及权限管控的场景,可在调用API前补充权限校验逻辑,确保只返回当前用户有权限访问的文档的集合信息
内容的提问来源于stack exchange,提问作者thichxai
相关产品推荐
相关产品推荐

