documentDb中没有分区键属性的文档会发生什么?

时间:2017-10-07 06:42:07

标签: azure-cosmosdb

看看如何使用分区键设置DocumentDb,如果我有一个多租户应用程序,其中大多数文档都有tenantId,使用/tenantId/的分区键创建集合似乎是合理的。

没有tenantId属性的文档会发生什么?它们是否会在没有它的情况下添加,或者Cosmos DB是否会使用某种系统(硬编码)tenantId创建这些对象/文档,以便将它们存储在一起?

1 个答案:

答案 0 :(得分:4)

这些文档会自动为分区键分配“未定义”值(类似于JavaScript的未定义)。这与任何其他值一样对待,所有缺少键的文档都存储在同一分区中。如果您有大量这些,那么您将无法进行扩展,因为丢失键中的所有写入都将分配给同一分区。

通常最好避免这种情况,或者稍后通过删除/重新插入来解决此问题(如果缺少分区键是由于在创建时不知道分区键的某些异步性质)。