2014-09-16 8 views
1

J'essaie de faire l'équivalent d'un mysql comme pour php mongo; trouver un lien dans ma collection d'articles qui commence par www.foo.com/{category}. Je peux l'exécuter correctement dans le shell mais le pilote php ne semble pas interpoler correctement ma commande. Et le mongo regex manque de documentation complète. Voici mon code.PHP mongo trouver le champ commence par

$cats = ['news', 'life', 'humor']; 

foreach($cats as $cat){ 
    $category = 'www.foo.com/' . $cat; 
    $articles = db()->articles->find(['link' => array('$regex'=>new MongoRegex("/^$category/"))]); 
} 

il renvoie des articles mais les liens ne correspondent pas.

Répondre

1

J'ai essayé de concaténer la regex puis de la passer à la requête mongo, plutôt que de la regex dans la requête avec la suppression des guillemets et cela a semblé fonctionner. espérons que cela aide quelqu'un d'autre qui a rencontré des problèmes similaires

$cats = ['news', 'life', 'humor']; 

foreach($cats as $cat){ 
    $prefix = '/^'; 
    $suffix = '/'; // prefix and suffix make up the regex notation for text that starts with 
    $category = $prefix . 'www.foo.com/' . $cat . $suffix; 
    $articles = db()->articles->find(['link' => array('$regex'=>new MongoRegex($category))]); 
} 
Questions connexes