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

时间:2018-10-08 18:24:20

标签: azure-cosmosdb azure-cosmosdb-mongoapi

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

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

PartitionKey是我基于其进行分区/分片的字段。但是当我执行此命令时,它返回的信息不是很有用:

  

错误:发生了错误

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

2 个答案:

答案 0 :(得分:1)

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

此外,您在使用哪个API?对于Gremlin API,您可以执行以下操作:g.V()。drop()

答案 1 :(得分:0)

正如@Mike所说,cosmos db sql api和mongo api尚不支持delete all data功能。我注意到您已经在link以上添加了评论。我只是在这里为您提供一种变通方法,即对cosmos db sql api使用批量删除存储过程。

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

不幸的是,对于mongo api,甚至不支持存储过程。您可以创建一个Azure HTTP Trigger Function来在函数中执行批量删除代码,或者将其合并到程序代码中。

希望它对您有帮助。