Чтобы выполнить сортировку без учёта регистра в MongoDB, ты используешь опцию collation в своём запросе. Collation определяет специфичные для языка правила сравнения строк, включая чувствительность к регистру.
При определении collation два поля являются обязательными:
locale — указывает языковые правила, которые нужно применить (например, "en" для английского)strength — управляет чувствительностью сравнения, где 2 означает игнорирование регистраdb.users.find().sort({ name: 1 }).collation({ locale: "en", strength: 2 })
Этот запрос:
usersname в возрастающем порядкеПараметр strength принимает разные значения:
1 — только различия базовых символов (без учёта акцентов и регистра)2 — учитывает акценты, но игнорирует регистр3 — учитывает и акценты, и регистр (поведение по умолчанию)Ты также можешь задать collation на уровне коллекции при её создании:
db.createCollection("users", { collation: { locale: "en", strength: 2 } })
Это делает все запросы к этой коллекции нечувствительными к регистру по умолчанию — без необходимости указывать collation в каждом отдельном запросе.
Параметр strength со значением 2 в MongoDB collation заставляет сравнение строк игнорировать как различия в регистре, так и диакритические знаки.
Новый — ещё не проверен сообществом
Вы