MongoDB $ in,$ all包含正则表达式

时间:2012-10-16 15:11:44

标签: mongodb doctrine-odm

我正在使用mongodb和doctrine / mongodb-odm-bundle我正在尝试构建这样的查询

$matches = array("/^abc/", "/^dbc/);

$this->createQueryBuilder()
    ->field('field_name')->in($matches)
    ->getQuery();

使用带有正则表达式的$all$in条件运算符。这是可能的吗?

1 个答案:

答案 0 :(得分:1)

你可以,但我不是PHP专家,看起来$matches是一个字符串数组,而不是正则表达式。你需要做这样的事情:

$matches = array(new MongoRegex("/^abc/"), new MongoRegex("/^dbc/"));

在你要做的shell中:

db.collection.find({field_name: {$in: [/^abc/, /^dbc/]}})