如何将 TTL 添加到 Azure DocumentDB

How to add TTL to Azure DocumentDB

有人知道如何将 TTL 添加到 Azure DocumentDB 吗?我尝试将一个名为 "TTL" 的 属性 设置为 1 秒后删除(用于测试)。但是它不起作用。

您首先需要为您的 collection 启用 ttl。这可以在门户网站的设置 blade 中找到:

您需要打开它。然后您可以使用 ttl 属性 来处理新文档(或者使用已经有 ttl 属性 的旧文档)。

另请注意:属性 名称应为 ttl,而不是 TTL

David 的回答很好,我不想重复相同的内容,只是想补充几点。

您可以像 David 所说的那样从门户网站设置 TTL,否则您可以通过编程方式进行控制。可以为集合级别下的所有文档或特定类型的文档设置 TTL(如果你想在一段时间后自动删除特定类型的文档)

您还可以通过对文档执行任何写入操作来重置现有文档的 TTL。这样做会将 _ts 设置为当前时间,并且 ttl 设置的文档到期倒计时将再次开始。如果您希望更改文档的 ttl,您可以像更新任何其他可设置字段一样更新该字段。

collection.setDefaultTimeToLive(259200) //collection level
document.setTimeToLive(259200) //document level

更多here

//This is how the driver handles internally
public void setTimeToLive(Integer timeToLive)
{
    if (timeToLive != null) {
        super.set("ttl", timeToLive);
    } else if (super.has("ttl")) {
        super.remove("ttl");
    }
}