Xquery 删除marklogic中具有多个版本的文档的最佳方法

Xquery 删除marklogic中具有多个版本的文档的最佳方法,xquery,marklogic,Xquery,Marklogic,我们在数据库中有多个版本的文档。前 文件如下:- /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-ver

我们在数据库中有多个版本的文档。前 文件如下:-

/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词典,并使用“uri”或“目录”函数之一,如cts:uri,而不是fn:doc--fn:doc“打开”文档并返回文档节点,而不是uri。 您不希望在删除文档时执行此操作

小心选择的版本模式和需求——如上所述,您可能最终会删除所有版本,并且在版本控制之前碰巧包含子字符串“-version”的文档可能会(与示例代码)不匹配


考虑管理文档版本(包括保留策略)的文档库服务。

是否要保留最新版本(即最后的版本号)?使用时间戳和使用日期范围查询执行cts:uris会更容易。这是一个选择吗?谢谢你的回复。我们使用了
xquery版本“1.0-ml”;对于1到980中的$i,返回xdmp:document delete('/premireleague/Manutd/players.xml version-*'| |$i | |)