У меня есть документы со следующей схемой:mongodb sharding, используйте несколько полей в качестве ключа осколка?
{
idents: {
list: ['foo', 'bar', ...],
id: 123
}
...
}
поле idents.list является массивом строки и всегда содержит по крайней мере один элемент. Поле idents.id может быть или не быть существующим.
с течением времени в 'idents.list' добавляются новые записи, и в какой-то момент в будущем поле idents.id также может быть установлено.
Эти два поля используются для четкого определения документа и, следовательно, имеют отношение к клавише осколка. Возможно ли использовать эту схему?
UPDATE: документов всегда запрошены через {idents.list: 'foo'}
ИЛИ { $or: [ {idents.list: 'foo'}, {idents.id: 42} ] }
Мы можем использовать несколько полей для ключа шарда. Но, используя несколько ключей, у нас никогда не будет хэшированного ключа осколка. Это мое понимание. –