Как найти на основе нечувствительного к регистру значения в MongoDB PHP? - PullRequest
0 голосов
/ 07 сентября 2018

Как найти на основе нечувствительного к регистру значения в MongoDB PHP?

Я использую следующие строки кода

$query = ['VehicleNumber' => $arg];
$cursor = $this->collection->find($query);

Я хочу найти данные на основе VehicleNumber, но он должен быть в состоянии найти данные на основе нечувствительного к регистру аргумента. Например, если в таблице есть данные с номерами транспортных средств, такими как JK AB123, JK DE245 и т. Д. Теперь, если arg содержит jk Ab123, он сможет найти эти данные.

Пожалуйста, помогите !!!

Ответы [ 2 ]

0 голосов
/ 07 сентября 2018

Вы должны использовать \ MongoDB \ BSON \ Regex с флагом "i" (нечувствительность к регистру, чтобы соответствовать верхнему и нижнему регистру).

Вы также должны экранировать строку, чтобы не совпадать с какими-либо специальными символами регулярного выражения; для этого вы можете использовать preg_quote .

$query = ['VehicleNumber' => new \MongoDB\BSON\Regex( preg_quote($arg),"i")];
0 голосов
/ 07 сентября 2018

Вы можете использовать $ regex для поиска значений с учетом регистра.

db.col.find({"VehicleNumber": { "$regex": /^jk Ab123/i } })
...