Существует два основных подхода для выполнения поиска без учёта регистра в MongoDB.
Ты можешь использовать оператор $regex с флагом i для поиска строк независимо от регистра:
db.users.find({ name: { $regex: /john/i } })
Collation позволяет определить правила сравнения строк, специфичные для языка. Установка strength: 2 игнорирует различия в регистре:
db.users.find({ name: "john" }).collation({ locale: "en", strength: 2 })
| Regex | Collation | |
|---|---|---|
| Поддержка индексов | Ограниченная | Полная |
| Производительность | Низкая | Высокая |
| Область применения | Поиск по шаблону | Точное совпадение строк |
Для продакшен-окружений с большими наборами данных collation является предпочтительным подходом благодаря возможности использовать индексы. Используй $regex для быстрых запросов или когда требуется поиск по шаблону.
Оператор $regex с флагом i может эффективно использовать индексы на больших коллекциях для поиска без учета регистра, что делает его предпочтительным методом в production-среде.
Новый — ещё не проверен сообществом
Вы