Я пытаюсь сделать эквивалент 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/"))]); }
он возвращает статьи, но ссылки не совпадают.
я попытался связать регулярное выражение, а затем передать его в запрос 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))]); }