Mongodb

複合分片鍵中空值/空值的行為是什麼?

  • December 28, 2017

我有一個基於**{Field1:1,Field2:1}的分片鍵,其中Field2 可以是 null**。因此,如果兩個文件具有相同的 Field1 值和 Field2 的空/空值,那麼它們是否被認為屬於同一個分片鍵/不可拆分

在 MongoDB 中,’null’ 只是另一個值,因此 field1 具有相同值(一些非 null)和 field2 具有相同值(null)的兩個文件具有相同的分片鍵值,並且始終位於相同的“塊”中”。

根據MongoDB BOL Here shard key 決定了集合的文件在集群的shards中的分佈。分片鍵是索引欄位或索引複合欄位,存在於集合中的每個文件中。

MongoDB使用分片鍵值範圍對集合中的數據進行分區。每個範圍定義了一個不重疊的分片鍵值範圍,並與一個相關聯。

MongoDB 嘗試在集群中的分片之間平均分配塊。分片鍵與塊分配的有效性有直接關係。

注意:一旦你對集合進行分片,分片鍵和分片鍵值是不可變的;即您不能different shard key為此選擇一個collection。你不能updatevaluesshard key fields

引用自:https://dba.stackexchange.com/questions/194001