在Cosmos Db中,我使用的是文档级生存时间(TTL),而Cosmos似乎没有过期文档。使用MongoDB API,此功能在Cosmos Db中是否有效?如果是的话,我错过了什么?
虽然我的文档中没有看到“_ts”字段,但有关索引的文章提到它是一个保留属性。这可以认为它是在幕后设置的,并且不会在查询中返回。
https://docs.microsoft.com/en-us/azure/cosmos-db/mongodb-indexing “_ts是一个特定于Cosmos DB的字段,无法从MongoDB客户端访问。它是一个保留(系统)属性,包含文档上次修改的时间戳。”
更新 我检查了MongoDB支持页面(https://docs.microsoft.com/en-us/azure/cosmos-db/mongodb-feature-support),它表明集合级别TTL可用,并且没有说明文档级别。
Azure Cosmos DB支持基于文档时间戳的相对生存时间(TTL)。可以通过Azure门户为MongoDB API集合启用TTL。
答案 0 :(得分:1)
我使用MongoDb API在Cosmos Db中获得了文档级别的生存时间。我必须向Microsoft支持寻求帮助才能使其正常运行。微软大数据团队的回应如下。
在启用文档级TTL功能之前,我想 在此处澄清有关文档TTL功能详细信息的以下内容。
TTL功能由两个级别的TTL属性控制- 收集级别和文档级别。
现在不是MongoDB帐户的每个文档级别的TTL 默认情况下可用。但是,我们可以针对特定情况启用此功能 客户,并且此功能是在帐户级别设置的。
TTL在文档级别,但是该功能已在帐户中启用 级别,表示该帐户下的所有收款(如果有) 带有TTL设置的文档,它将生效。对于其他收藏, 如果未为每个文档设置TTL值,则不会 受影响。
您需要在_ts字段上具有索引才能使其正常工作。
总结一下:-此功能适用于Cosmos DB帐户级别。 我们需要在Cosmos DB后端中启用文档TTL功能 一侧。