我正在尝试使用PHP在mongo db中实现类似MySQL的查询,但我不知道该怎么做。
select * from stud where name like "%abc%"
php代码:
$regex = new \MongoDB\BSON\Regex("^(.*?(\abc\b)[^$]*)i$");
$result = $db->stud->find(array('name' => $regex));
我也试过这个
$result = $db->stud->find(( { name : { $regex: '*.abc.*'} } ));
答案 0 :(得分:1)
根据this manual执行LIKE匹配,你不需要在模式中的任何地方使用wildecards。例如,要查询%abc%
,您必须执行此操作:
$result = $db->stud->find(array(
'name' => new \MongoDB\BSON\Regex("abc")
));