Я пытаюсь сделать эквивалент MySQL, как для PHP Монго; найти любую ссылку в моей коллекции статей, которая начинается с www.foo.com/ndomcategory}. Я могу выполнить это нормально в оболочке, но драйвер php, кажется, не интерполирует мою команду правильно. И регулярному выражению Монго не хватает тщательной документации. Вот мой код.
$cats = ['news', 'life', 'humor'];
foreach($cats as $cat){
$category = 'www.foo.com/' . $cat;
$articles = db()->articles->find(['link' => array('$regex'=>new MongoRegex("/^$category/"))]);
}
он возвращает статьи, но ссылки не совпадают.
я попытался объединить регулярное выражение, а затем передать его в запрос на монго, в отличие от регулярного выражения в запросе вместе с удалением кавычек, и это, похоже, сработало. надеюсь, это поможет кому-то, кто сталкивался с подобными проблемами
$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))]);
}
Других решений пока нет …