mongodb分片,使用多个字段作为分片键?

时间:2016-04-01 05:14:10

标签: mongodb sharding

我有以下架构的文件:

{
  idents: {
    list: ['foo', 'bar', ...],
    id: 123
  }
  ...
}

字段idents.list是一个字符串数组,始终包含至少一个元素。 字段idents.id可能存在也可能不存在。

随着时间的推移,更多条目会添加到' idents.list'在未来的某个时刻,也可以设置字段idents.id。

这两个字段用于清楚地标识文档,因此与分片键相关。 是否可以使用此模式进行分片?

更新: 始终通过{idents.list: 'foo'}{ $or: [ {idents.list: 'foo'}, {idents.id: 42} ] }

查询文档

1 个答案:

答案 0 :(得分:0)

是的,你可以这样做。文档说:

Use a compound shard key that uses two or three values from all documents that provide the right mix of cardinality with scalable write operations and query isolation.

https://docs.mongodb.org/manual/tutorial/choose-a-shard-key/