在Cosmos Db中,我使用的是文档级生存时间(TTL),而Cosmos似乎没有过期文档 . 使用MongoDB API,此功能在Cosmos Db中是否有效?如果是的话,我错过了什么?
-
我正在使用Cosmos Db和MongoDB API .
-
在我的集合的每个文档中设置了"ttl"字段 .
-
在Azure中,我的收藏集的生存时间设置为"On (no default)" .
-
我在没有模拟器的情况下这样做,因为模拟器默认使用SQL API . 在模拟器中,我看到"_ts"设置,我在Azure中看不到此字段 .
-
我可以通过将生存时间设置为"On"并按预期过期文档来切换到收集级别到期 . 当我这样做时,我的"ttl"字段被忽略,并且遵循我在Azure中为"second(s)"设置的值 . 我仍然在文档中看到我的"ttl"字段 .
虽然我的文档中没有看到“_ts”字段,但有关索引的文章提到它是一个保留属性 . 这可以认为它是在幕后设置的,并且不会在查询中返回 .
https://docs.microsoft.com/en-us/azure/cosmos-db/mongodb-indexing“_ts是一个特定于Cosmos DB的字段,无法从MongoDB客户端访问 . 它是一个保留(系统)属性,包含文档上次修改的时间戳 . “
Update: 我检查了MongoDB支持页面(https://docs.microsoft.com/en-us/azure/cosmos-db/mongodb-feature-support),它表明集合级别TTL可用,并且没有说明文档级别 .
Azure Cosmos DB支持基于文档时间戳的相对生存时间(TTL) . 可以通过Azure门户为MongoDB API集合启用TTL .
Update: 我的Azure门户预览功能现在显示:
1 回答
我使用MongoDb API获得了使用Cosmos Db工作的文档级生存时间 . 我不得不向微软支持部门寻求帮助以使其正常运行 . 微软大数据团队的回应如下 .