如何删除分区中的所有数据?

How to delete all data in a partition?

我有一个包含多个不同分区的 CosmosDB 集合。我想删除其中一个分区中的所有数据,所以我尝试 运行 命令:

db.myCollection.deleteAll({PartitionKey: 'pop-9q'})

其中 PartitionKey 是我 partition/shard 基于的字段。但是当我执行它时 returns 不是很有帮助的消息:

ERROR: An Error has occurred

为什么我会收到此消息,我如何才能获得有关原因的更多详细信息或找到解决方案?

目前,您无法执行批量删除。请对此功能进行投票和评论:Add the ability to delete ALL data in a partition

此外,您 API 在消费什么?对于 Gremlin API,您可以执行类似以下的操作:g.V().drop()

正如@Mike 所说,Cosmos db SQL API 和 Mongo API 中尚不支持 "delete all data" 功能。我注意到您已经在上面 link 添加了评论。我只是在这里为您提供一个解决方法,即使用 Cosmos db SQL API.

的批量删除存储过程

(示例代码:https://gist.github.com/deepumi/2a23c5380202bddf0b85e83baf5833be

对于MongoAPI,不幸的是,连存储过程都不支持。您可以创建一个 Azure HTTP Trigger Function 以在需要时随时执行函数中的批量删除代码,或将其合并到您的程序代码中。