azure CosmosDB无法删除带有ttl的项

63lcw9qa  于 12个月前  发布在  其他
关注(0)|答案(1)|浏览(84)

我有一个Azure CosmosDB模拟器正在运行,我正在通过@nestjs/azure-database库访问它。DB有一个容器,其TTL设置为五分钟。由于某种原因,当容器或项目有TTL时,无法手动删除它们。任何这样做的尝试都会导致Resource Not Found错误。我正在运行的测试代码是

await this.container.items.create({id: '1'});
await this.container.item('1').read();
await this.container.item('1').delete();

字符串
读取操作正常进行,但是删除操作总是失败,并且项目仍然保留在DB中,在模拟器的资源管理器上可见。我在文档中看不到任何内容表明如果项目具有ttl,则无法手动删除项目。如何抢先删除具有尚未过期的ttl的项目?

dm7nw8vv

dm7nw8vv1#

这个问题最终与TTL无关,在一步一步地改变一个工作示例之后,我最终发现,尽管partitionKeyValue@azure/cosmos中的可选参数,但任何项目上的变化,如deletepatch都会抛出404,除非提供partitionKeyValue。希望这能为其他人节省一些时间。

相关问题