【问题标题】:DocumentDB DeleteDocumentAsync() without partition key没有分区键的 DocumentDB DeleteDocumentAsync()
【发布时间】:2017-09-03 20:10:14
【问题描述】:

根据this doc,您必须在调用删除时指定分区键。

那么,如果您创建了一个没有分区键的集合,这是否意味着您不能删除任何文档?

【问题讨论】:

    标签: azure azure-cosmosdb


    【解决方案1】:

    该要求仅适用于分区集合。

    如果您只是使用单分区 (10GB) 集合,只需调用不带 RequestOptions 属性的 DeleteDocumentAsync()(因为它将默认为 null),或者如果您使用 RequestOptions 中的 PartitionKey '正在设置其他选项,因为RequestOptions 用于指定分区键。

    DeleteDocumentAsync() 的文档是 here

    【讨论】:

    • 大卫,请说明这是文档问题还是读者问题。似乎该文档没有提出您在此处发布的建议。还是我读错了文档?
    • 我不确定我是否理解您的要求,但是...您所指的文档更像是一个演练/教程。查看DeleteDocumentAsync() 的实际文档 - 你会看到RequestOptions 是可选的。但是除了文档之外,请从逻辑上考虑 - 如果没有分区键,为什么要指定分区键?
    • 我提出这个问题是因为我正在阅读的文档声明“删除文档。需要分区键”这没有意义。这就是为什么我的问题有点讽刺的原因。在我的后续问题中,我问你(你是一名 SME),如果缺陷是在我这边还是在文档上。该文档不建议您仅在分区时才需要分区键,现在您知道我来自哪里了吗?
    • 文档需要更正,因此很明显,如果您不分区,则不需要密钥。如果有其他文档可以解释这一点,那才是最重要的。该文档的标题不是“Azure CosmosDB:在 .NET 中使用 DocumentDB API 进行开发,带有分区”。也不是在没有分区的情况下删除
    • 该文档位于github,这是您为其做出贡献的绝佳机会,提到 10gb 集合不需要 pk,并提交 PR。但请记住:在文档的顶部,本教程明确指出它将遍历创建带有分区键的集合、查询带有分区键的集合(包括未指定分区键时的扇出) , 并删除 w/分区键。在整个文章中,都提到了分区键。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-10-30
    • 2021-05-07
    相关资源
    最近更新 更多