有谁知道如何将TTL添加到Azure DocumentDB?我尝试了一个名为" TTL"值1表示在1秒后删除(用于测试)。但它不起作用。
答案 0 :(得分:7)
首先需要为您的收藏启用ttl。这可以在门户网站的“设置”边栏中找到:
你想打开它。然后,您可以使用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");
}
}