我有以下架构的文件:
{
idents: {
list: ['foo', 'bar', ...],
id: 123
}
...
}
字段idents.list是一个字符串数组,始终包含至少一个元素。 字段idents.id可能存在也可能不存在。
随着时间的推移,更多条目会添加到' idents.list'在未来的某个时刻,也可以设置字段idents.id。
这两个字段用于清楚地标识文档,因此与分片键相关。 是否可以使用此模式进行分片?
更新:
始终通过{idents.list: 'foo'}
或{ $or: [ {idents.list: 'foo'}, {idents.id: 42} ] }
答案 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/