Quiero buscar un primer y último partido nombre parcial - por ejemplo, en SQLCómo hacer o buscar
f_name LIKE J% OR l_name LIKE S%
se correspondería con John Smith o John Henry o Harry Smith.
Estoy asumiendo que puedo necesitar utilizar el "$ o" operador,
tengo esta tan lejos, que creo que está haciendo la parte COMO% correctamente, pero creo que está haciendo un "Y" de búsqueda (lo que significa que busca f_nombre como J% Y l_name cOMO S% por lo que sólo coincidiría con John Smith):
$name1="J";
$name2="S";
$cursor = $this->clientCollection->find(array('f_name' => new MongoRegex('/^'.$name1.'/i'), 'l_name' => new MongoRegex('/^'.$name2.'/i')));
Nota: Este coincidirá contiene como en% J%
MongoRegex('/'.$name1.'/i')
Esta voluntad el partido comienza con (Nótese el añadido ^) como en J%
MongoRegex('/^'.$name1.'/i')
Esto funciona, pero me preguntaba por qué el conjunto interior de las llamadas de la matriz? El código original funciona, devuelve registros como AND. Intenté usar cambiando el código a \t $ cursor = $ this-> clientCollection-> find (array (array ('f_name' => new MongoRegex ('/'.$ name1.'/I ')), array (' l_name '=> nuevo MongoRegex ('/'.$ name2.'/i ')))); y no funciona, pero lo hace en su caso con '$ o'. –
He tratado de explicar qué está pasando aquí. Desafortunadamente, todos los PHP 'array()' s pueden hacer que sea bastante difícil saber qué está pasando en una consulta de Mongo en PHP, especialmente de un vistazo. –