mon go поиск без учета регистра в mon go - Что такое сопоставление en vs en_US - PullRequest
0 голосов
/ 10 марта 2020

Я использую mon go (v3.6) и хочу иметь возможность выполнять поиск по полю в документе без учета регистра. В mon go do c Mon go docs v3.6 индекс-без учета регистра указывается, что запросы должны использовать одно и то же сопоставление, поэтому, если я хочу, чтобы myfield использовал поиск без учета регистра, я создаст индекс без учета регистра. По умолчанию индексы должны быть чувствительны к регистру (по моему опыту).

Поэтому ниже я создам коллекцию, чувствительную к регистру, затем создаю регистр без учета регистра и затем покажу, что он используется.

db.createCollection("mycollection", { collation: { locale: 'en_US', strength: 2 } } )
db.mycollection.createIndex({ myfield: 1 }, { collation: { locale: 'en', strength: 2 } } )

Чтобы использовать поиск без учета регистра (так называемый запрос без учета регистра), я бы использовал collation() следующим образом:

db.mycollection.insert( [ {first: "Sally"}, {first: "sally"} ]);
db.mycollection.find({first: 'SallY'});
// returns nothing
db.mycollection.find({first: 'SallY'}).collation({locale: 'en' })
// Returns both [ {first: 'Sally'}, {first: 'sally'}]

Нет, где я вижу, как ru делает его нечувствительным к регистру?

Так как же сопоставление en против en_US делает один случай слепым, а другой нет?

Что я сделал ?

Я выполнил поиск в SO для сопоставления [mongodb-query] en vs en_US и не дал результатов. Но было несколько других вопросов, подобных en и en-US, но ничего не применимо.

Ближайший вопрос, который был применен:

Как сопоставление en против en_US делает один случай слепым, а другой - нет?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...