Как мне найти часть строки в MongoDB? - PullRequest
4 голосов
/ 19 ноября 2010

У меня есть скрипт автозавершения jquery, который принимает массив JSON и отображает его в таблице (аналогично предложению Google). По мере ввода он запрашивает данные из php-скрипта.

Что я хотел бы сделать, это запросить эти данные из базы данных MongoDB как типы людей, однако мне нужно, чтобы они соответствовали любой части выбранного поля.

Итак, у меня есть поле с именем «Имя», которое имеет фамилию и имя в том же поле. Если у меня есть запись для «Джона Смита», то Джо Джон и Смит Смит Смит должны соответствовать той же записи.

Использование $ collection-> find (array ('Name' => 'John'); однако не соответствует моей записи Джона Смита. Что я делаю не так?

Ответы [ 2 ]

7 голосов
/ 19 ноября 2010

Для этого вам нужно использовать регулярные выражения.Такие как

$collection->find(array('Name' => new MongoRegex('/John/i'));
1 голос
/ 19 ноября 2010

Используя просто «Джон», вы ищете записи, в которых Имя точно соответствует «Джону». Вы можете использовать регулярные выражения для сопоставления произвольных подстрок, например:

$collection->find(array("Name" => "/.*John.*/i"));
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...