我正在使用mongodb和doctrine / mongodb-odm-bundle我正在尝试构建这样的查询
$matches = array("/^abc/", "/^dbc/);
$this->createQueryBuilder()
->field('field_name')->in($matches)
->getQuery();
使用带有正则表达式的$all
和$in
条件运算符。这是可能的吗?
答案 0 :(得分:1)
你可以,但我不是PHP专家,看起来$matches
是一个字符串数组,而不是正则表达式。你需要做这样的事情:
$matches = array(new MongoRegex("/^abc/"), new MongoRegex("/^dbc/"));
在你要做的shell中:
db.collection.find({field_name: {$in: [/^abc/, /^dbc/]}})