MongoDB. Как найти строку, имеющую все подстроки?

я имею MongoDB документы. Все документы содержат строку полного имени (например, «Джон Фиджеральд Кеннеди», «Джон Доу»).

По веб-запросу, содержащему подстроки (например, «john», «kennedy» или «kennedy», «john»), я хотел бы найти все документы, в которых полное имя содержит все эти подстроки (например, «john fidgerald kennedy»).

Однако я не могу понять, как это сделать.

По сути, с PHP я хотел бы сделать что-то вроде $ collection-> find (array («fullname» => «john» && «Kennedy»). Я знаю, что этот синтаксис невозможен, но он дает представление о том, что я хотел бы.

Есть идеи, как это сделать? В идеале я хотел бы получить быстрый метод, учитывая, что у меня есть более 1000000 документов.

1

Решение

Я надеюсь, что это поможет вам:

$query = "john";
$where = array(array('fullname'  => array('$regex' => new MongoRegex("/$query/i"))));
$mongoClient = new MongoClient();
$db = $mongoClient->selectDB("datbase_name");
$collection = $db->selectCollection("collection_name");
$cursor = $collection->find($where);
1

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]