使用MongoDB API的Cosmos DB删除容器所有文档的操作方法
Azure Cosmos DB for MongoDB 删除容器内全量文档方案
首先明确:可以直接在Azure门户完成全量删除操作,不需要额外编写代码或安装本地工具,其中最简单、成本最低的方式是删除容器后重建,比逐批删除文档效率高几个量级。
门户内可直接完成的两种操作方式
方式1:删除容器后重建(首选,零冗余RU消耗)
Cosmos DB的容器删除是秒级操作,不会按文档量消耗删除RU,是清空全量文档性价比最高的方案,操作步骤:
- 进入对应Cosmos DB账户的资源页,打开左侧「数据资源管理器」
- 展开目标数据库,找到要清空的容器,先记好它的分区键路径、索引策略、吞吐量配置(手动RU/自动伸缩RU数值)、唯一键规则这些核心参数
- 右键点击容器选择「删除容器」,确认后容器会被立即移除
- 在同个数据库下新建容器,填入和原容器完全一致的名称、分区键、吞吐量、索引等配置,新建完成的容器是空的,效果和清空所有文档完全一致。
方式2:保留容器执行批量删除(适合不能删重建容器的场景)
如果业务侧已经写死了容器相关配置、不能删除重建,可以直接用门户内置的Mongo Shell执行删除命令,不用本地装Mongo工具:
- 在数据资源管理器选中目标容器,点击顶部菜单栏的「Shell」打开内置命令行
- 确认当前定位到目标集合后,执行全量删除命令:
// 把<你的容器名>替换成实际要清空的容器名称 db.<你的容器名>.deleteMany({})
- 等待命令执行完成即可。如果容器内文档量超过百万级,执行时可能触发RU限流,可以临时调高容器吞吐量再操作,执行完再调回原配置即可。
补充说明
如果需要做自动化清空脚本,最轻量的方式就是拿Cosmos DB的MongoDB连接串,通过本地Mongo Shell执行上面的deleteMany({})命令就行,不需要额外引入SDK写复杂代码。
注意:不要用旧版的
remove({})命令,低版本MongoDB API的Cosmos DB对这个命令兼容性不好,容易执行失败。如果不需要立即清空,给全容器配置默认TTL为0也能自动删除所有文档,但生效有最长几十分钟到数小时的延迟,不适合紧急清空场景。
内容的提问来源于stack exchange,提问作者mike
相关产品推荐
相关产品推荐

