删除 marklogic 中具有多个版本的文档的最佳方法
Best way to delete documents in marklogic which are having multiple version
我们在数据库中有多个版本的文档。对于前
文档 URI 如下所示:-
/PremierLeague/Manutd/players.xml-version-2
/PremierLeague/Manutd/players.xml-version-3
/PremierLeague/Manutd/players.xml-version-4
.
.
.
.
.
/PremierLeague/Manutd/players.xml-version-998
/PremierLeague/Manutd/players.xml-version-999
/PremierLeague/Manutd/players.xml-version-1000
我们需要找到这样的所有文档的数量,然后删除所有高于“.version-20”的文档版本。
例如
/PremierLeague/Manutd/players.xml-version-19 --> NOT DELETE
/PremierLeague/Manutd/players.xml-version-20 --> NOT DELETE
/PremierLeague/Manutd/players.xml-version-21 --> TO BE DELETED
/PremierLeague/Manutd/players.xml-version-22 --> TO BE DELETED
.
.
.
.
/PremierLeague/Manutd/players.xml-version-999 --> TO BE DELETED
/PremierLeague/Manutd/players.xml-version-1000 --> TO BE DELETED
我们有多个目录,其中存在多个文档。
截至目前,我们统计的文档如下
xquery version "1.0-ml";
fn:count(fn:doc("/PremierLeague/Manutd/players.xml-version-*"))
删除此类文档的最佳方法是什么?
启用 uri 词典并使用 'uris' 或 'directory' 函数之一,例如 cts:uris,而不是 fn:doc -- fn:doc 'opens' 文档和 returns 文档节点,而不是 uri。
你不想在删除文档时这样做。
注意选择的版本模式和要求——如前所述,您最终可能会删除 所有 版本,以及碰巧具有子字符串“-version”的文档" 在版本控制之前它们中的内容将不匹配(与您的示例代码)。
考虑管理文档版本(包括保留策略)的文档库服务。
我们在数据库中有多个版本的文档。对于前 文档 URI 如下所示:-
/PremierLeague/Manutd/players.xml-version-2
/PremierLeague/Manutd/players.xml-version-3
/PremierLeague/Manutd/players.xml-version-4
.
.
.
.
.
/PremierLeague/Manutd/players.xml-version-998
/PremierLeague/Manutd/players.xml-version-999
/PremierLeague/Manutd/players.xml-version-1000
我们需要找到这样的所有文档的数量,然后删除所有高于“.version-20”的文档版本。
例如
/PremierLeague/Manutd/players.xml-version-19 --> NOT DELETE
/PremierLeague/Manutd/players.xml-version-20 --> NOT DELETE
/PremierLeague/Manutd/players.xml-version-21 --> TO BE DELETED
/PremierLeague/Manutd/players.xml-version-22 --> TO BE DELETED
.
.
.
.
/PremierLeague/Manutd/players.xml-version-999 --> TO BE DELETED
/PremierLeague/Manutd/players.xml-version-1000 --> TO BE DELETED
我们有多个目录,其中存在多个文档。 截至目前,我们统计的文档如下
xquery version "1.0-ml";
fn:count(fn:doc("/PremierLeague/Manutd/players.xml-version-*"))
删除此类文档的最佳方法是什么?
启用 uri 词典并使用 'uris' 或 'directory' 函数之一,例如 cts:uris,而不是 fn:doc -- fn:doc 'opens' 文档和 returns 文档节点,而不是 uri。 你不想在删除文档时这样做。
注意选择的版本模式和要求——如前所述,您最终可能会删除 所有 版本,以及碰巧具有子字符串“-version”的文档" 在版本控制之前它们中的内容将不匹配(与您的示例代码)。
考虑管理文档版本(包括保留策略)的文档库服务。