2013-04-12 5 views
1

정말 mongoDb을 처음 사용하는데 문제가 있습니다.mongodb-odm을 사용하여 @Hash 필드 유형의 값을 찾습니다.

은 내가 컬렉션에서이 필드가 :

db.collection.find ({ '데이터':/DATA1 /})

을 콘솔을 통해이 쿼리가 작동하는 이유는

data: [ "data1", "data2" ] 

하지만 이건 아니야?

$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

시도 필드에 elemMatch() 식을 추가.

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