2013-04-12 1 views
1

Я действительно новичок в mongoDb, и у меня есть проблема.Найти значение в поле типа @Hash с mongodb-odm

у меня есть это поле в коллекции:

data: [ "data1", "data2" ] 

Почему этот запрос через консоль работает:

db.collection.find ({ 'данные':/data1 /})

но это нет?

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

Где я ошибаюсь? Благодаря

ответ

0

я решил, добавив еще один дискриминационный:

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

Try добавление elemMatch() выражение для поля.

->field('my_field')->elemMatch($qb->expr()->field('data')->equals('data1')) 
Смежные вопросы