Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/249.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Arangodb 旧文件的有效清除_Arangodb - Fatal编程技术网

Arangodb 旧文件的有效清除

Arangodb 旧文件的有效清除,arangodb,Arangodb,使用Arangodb3.6.x,我有一个场景,连续的文档进入数据库,需要不断地删除旧文档。确定文档以消除这些记录的有效/简单算法是什么。我可以使用文档“\u键”进行选择和删除吗 我想从数据库中检索文档来查看每一个文档都是一种不好的方法,所以我试图找到一种简单、高效的算法。理想情况下,数据库本身将提供这样的机制,如分区。f、 前。关于数据时间戳,它不必非常精确,但它必须有效,因为我必须确保文档总数保持在最大值以下 我特别关注ArangoDB 多谢各位 若昂这取决于您如何限定“旧”文档。如果这些是按

使用Arangodb3.6.x,我有一个场景,连续的文档进入数据库,需要不断地删除旧文档。确定文档以消除这些记录的有效/简单算法是什么。我可以使用文档“\u键”进行选择和删除吗

我想从数据库中检索文档来查看每一个文档都是一种不好的方法,所以我试图找到一种简单、高效的算法。理想情况下,数据库本身将提供这样的机制,如分区。f、 前。关于数据时间戳,它不必非常精确,但它必须有效,因为我必须确保文档总数保持在最大值以下

我特别关注ArangoDB

多谢各位
若昂

这取决于您如何限定“旧”文档。如果这些是按日期的,那么您可以简单地确保每个文档都有一个数字时间戳属性。我在JavaScript中使用AQL
DATE\u NOW()
函数或
(new DATE()).valueOf()
。然后,只需在timestamp属性上添加一个索引,允许按大于/小于
x
的数字进行近乎即时的排序和/或过滤

LET millisecondsAgo = (8 * 60 * 60 * 1000)  // 8 hours
FOR a IN collection_a
    FILTER a.timestamp < (DATE_NOW() - millisecondsAgo)
    REMOVE a IN collection_a

uniqueKey
上的
collection\u a
collection\u b
上都应该有一个(在UI中称为“持久索引”,unique是好的,但不是必需的)。然后,collection_b…中b的
查询将使用索引超快速匹配,如果找到某个内容,则返回
true
。如果没有匹配的记录,则不会返回任何内容,因此返回的数组长度为零。哈希键查找+非常小数组的计算长度应该非常快。

这取决于您如何限定“旧”文档。如果这些是按日期的,那么您可以简单地确保每个文档都有一个数字时间戳属性。我在JavaScript中使用AQL
DATE\u NOW()
函数或
(new DATE()).valueOf()
。然后,只需在timestamp属性上添加一个索引,允许按大于/小于
x
的数字进行近乎即时的排序和/或过滤

LET millisecondsAgo = (8 * 60 * 60 * 1000)  // 8 hours
FOR a IN collection_a
    FILTER a.timestamp < (DATE_NOW() - millisecondsAgo)
    REMOVE a IN collection_a
uniqueKey
上的
collection\u a
collection\u b
上都应该有一个(在UI中称为“持久索引”,unique是好的,但不是必需的)。然后,collection_b…
中b的
查询将使用索引超快速匹配,如果找到某个内容,则返回
true
。如果没有匹配的记录,则不会返回任何内容,因此返回的数组长度为零。哈希键查找+非常小数组的计算长度应该非常快。

我最后使用了“TTL索引”,结果非常好。我最终使用了“TTL索引”,结果非常好。