Мне нужно индексировать поле, которое может хранить строки/числа (int или float) или массивы.Mongodb multi type field
Я проиндексировал его, используя ({поле: 1}), но часть содержимого большая, и я получаю ошибку «ключ слишком большой для индексации».
Что делать, если я проиндексирую его с помощью текстового индекса, должен ли он решить мою проблему? Будет ли он также индексировать номера?
Есть ли способ создать несколько индексов для одного поля (числа и строки), которые поддерживают большой контент?
Спасибо.
Проблема в том, что у меня много запросов регулярных выражений. Может ли хешированный индекс правильно обрабатывать его? – user2288183
@ user2288183, IMO, для тех, кто из doc, 'Если для поля существует индекс, то MongoDB сопоставляет регулярное выражение со значениями в индексе, которое может быть быстрее, чем сканирование коллекции. Дальнейшая оптимизация может произойти, если регулярное выражение является «префиксным выражением», что означает, что все потенциальные совпадения начинаются с одной и той же строки. Это позволяет MongoDB создавать «диапазон» из этого префикса и соответствовать только этим значениям из индекса, попадающего в этот диапазон. «Хешированный индекс может справиться с этим хорошо. – zangw
@ user2288183, может быть, вы могли бы сравнить их с помощью сравнения. – zangw