я имею MongoDB документы. Все документы содержат строку полного имени (например, «Джон Фиджеральд Кеннеди», «Джон Доу»).
По веб-запросу, содержащему подстроки (например, «john», «kennedy» или «kennedy», «john»), я хотел бы найти все документы, в которых полное имя содержит все эти подстроки (например, «john fidgerald kennedy»).
Однако я не могу понять, как это сделать.
По сути, с PHP я хотел бы сделать что-то вроде $ collection-> find (array («fullname» => «john» && «Kennedy»). Я знаю, что этот синтаксис невозможен, но он дает представление о том, что я хотел бы.
Есть идеи, как это сделать? В идеале я хотел бы получить быстрый метод, учитывая, что у меня есть более 1000000 документов.
Я надеюсь, что это поможет вам:
$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);
Других решений пока нет …