使用mongodb-odm在@Hash字段类型中查找值

时间:2013-04-12 08:48:21

标签: mongodb symfony-2.1 doctrine-odm

我对mongoDb很新,我遇到了问题。

我在集合中有这个字段:

data: [ "data1", "data2" ]

为什么这个查询通过控制台工作:

db.collection.find({'data':/ data1 /})

但这不是吗?

 $hasData = $this->documentManager->createQueryBuilder('Document\\Collection')
        ->field('data')->equals( new \MongoRegex('/data1/'))
        ->count()
        ->getQuery()
        ->execute();

我哪里错了?感谢

2 个答案:

答案 0 :(得分:0)

我通过添加另一种歧视来解决:

$hasData = $this->documentManager->createQueryBuilder('Document\\Collection')
        ->field('data')->equals( new \MongoRegex('/data1/'))
        ->field('_id')->equals(new \MongoId($user->getId()))
        ->count()
        ->getQuery()
        ->execute();

答案 1 :(得分:0)

尝试在字段中添加elemMatch()表达式。

->field('my_field')->elemMatch($qb->expr()->field('data')->equals('data1'))