Начало поиска PHP mongo начинается с

Я пытаюсь сделать эквивалент mysql, как для php mongo; найти любую ссылку в моей коллекции статей, которая начинается с сайта www.foo.com/{category}. Я могу выполнить это нормально в оболочке, но драйвер php, кажется, не будет правильно интерполировать мою команду. И в регулярном выражении манго не хватает полной документации. Вот мой код.

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

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

он возвращает статьи, но ссылки не совпадают.

Ответы

Ответ 1

я попытался связать регулярное выражение, а затем передать его в запрос mongo, а не повторять его в запросе вместе с удалением кавычек и, казалось, работал. надеюсь, что это поможет кому-то, кто сталкивался с подобными проблемами.

$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))]);
}