【发布时间】:2017-10-07 06:42:07
【问题描述】:
看看如何使用分区键设置 DocumentDb,如果我有一个多租户应用程序,其中大多数文档都有一个tenantId,那么使用 /tenantId/ 的分区键创建集合似乎是合理的。
没有tenantId 属性的文档会怎样?它们会在没有一个的情况下添加,还是 Cosmos DB 会使用某种系统(硬编码)tenantId 创建这些对象/文档,以便将它们存储在一起?
【问题讨论】:
标签: azure-cosmosdb
看看如何使用分区键设置 DocumentDb,如果我有一个多租户应用程序,其中大多数文档都有一个tenantId,那么使用 /tenantId/ 的分区键创建集合似乎是合理的。
没有tenantId 属性的文档会怎样?它们会在没有一个的情况下添加,还是 Cosmos DB 会使用某种系统(硬编码)tenantId 创建这些对象/文档,以便将它们存储在一起?
【问题讨论】:
标签: azure-cosmosdb
这些文档被自动分配了分区键的“未定义”值(类似于 JavaScript 的未定义)。这被视为任何其他值,并且所有缺少键的文档都存储在同一分区中。如果您有大量这些,那么您将难以扩展,因为丢失键中的所有写入都将被分配到同一个分区。
通常最好避免这种情况,或者稍后通过删除/重新插入来解决此问题(如果缺少分区键是由于在创建时不知道分区键的某种异步性质)。
【讨论】: