Mongodb
複合分片鍵中空值/空值的行為是什麼?
我有一個基於**{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
。你不能update
的values
。shard key fields