如何将TTL添加到Azure DocumentDB

时间:2016-05-18 12:47:03

标签: azure azure-cosmosdb

有谁知道如何将TTL添加到Azure DocumentDB?我尝试了一个名为" TTL"值1表示在1秒后删除(用于测试)。但它不起作用。

2 个答案:

答案 0 :(得分:7)

首先需要为您的收藏启用ttl。这可以在门户网站的“设置”边栏中找到:

ttl setting

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

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

答案 1 :(得分:2)

大卫的答案很棒,我不想再重复一遍,只是想补充几点。

你可以在像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");
    }
}