2013-07-21 9 views
0

J'ai eu des difficultés avec l'opérateur $ et MongoRegex.

Je fais une recherche record regex pour « Amazon » qui a aussi le champ « activé » mis à 1.

Ceci est ma requête.

$search = "Amazon"; 
$results = $collection->find(array(
    '$and' => array(
    array('orgname' => new MongoRegex("/.*$search.*/")), 
    array('enabled' => '1') 
    ) 
)); 

Peut-être que quelqu'un peut signaler ce que je fais mal. Merci d'avance.

+0

J'ai édité votre question et mis en forme afin qu'il soit plus facile à lire. Peut-être que cela fonctionne maintenant. Je pense que vous avez placé un crochet de fin à la fin au lieu de 'new MongoRegex (" /.*$ search. */")'. Mais je ne peux pas revenir en arrière et voir votre poste orignal ... De toute façon, dans ce cas, vous n'avez pas besoin de l'opérateur '$ and', voir mon anwer. – luttkens

+0

@luttkens Si vous avez changé le code, alors vous avez changé la nature de la question, cette parenthèse incorrecte aurait pu être le problème ... – Sammaye

+0

Merci pour votre aide – Cyber

Répondre

1

Je pense que dans ce cas, vous n'avez pas besoin d'utiliser l'opérateur $and. Essayez ceci:

$search = "Amazon"; 
$cursor = $collection->find(array(
    'orgname' =>new MongoRegex("/.$search./"), 
    'enabled' => 1) 
);