【问题标题】:How to delete all data in a partition?如何删除分区中的所有数据?
【发布时间】:2018-10-08 18:24:19
【问题描述】:

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

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

PartitionKey 是我分区/分片所基于的字段。但是当我执行此操作时,它会返回不是很有帮助的消息:

错误:发生错误

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

【问题讨论】:

    标签: azure-cosmosdb azure-cosmosdb-mongoapi


    【解决方案1】:

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

    另外,您使用的是哪个 API?对于 Gremlin API,您可以执行如下操作:g.V().drop()

    【讨论】:

    • 貌似是Mongo
    • 是的,它是 Mongo。那么我该如何删除分区中的数据呢?
    • 是的,在 CosmosDB 用户之声中投票并等待五年后将其视为“已计划”...哈哈哈哈哈哈(例如,只需查看 SKIP 子句功能请求)
    • 链接已失效。
    【解决方案2】:

    正如@Mike 所说,Cosmos db SQL API 和 Mongo API 尚不支持“删除所有数据”功能。我注意到您已经在上面的link 中添加了 cmets。我只是在这里为您提供了一种解决方法,即对 Cosmos db SQL API 使用批量删除存储过程。

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

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

    【讨论】:

      猜你喜欢
      • 2019-09-28
      • 2015-10-10
      • 2010-11-06
      • 2019-10-06
      • 2014-12-30
      • 2022-10-01
      • 1970-01-01
      • 1970-01-01
      • 2018-05-26
      相关资源
      最近更新 更多