如何将 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");
}
}
有人知道如何将 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");
}
}