2016-02-14 8 views
2

Я заполнил MongoDB-коллекцию со следующими значениями (идентификторов = myvar):

array (size=10) 
    0 => string 'B00LHILHS8' (length=10) 
    1 => string 'B00WSCCMV8' (length=10) 
    2 => string 'B00MA15OK8' (length=10) 

Однако - findBy(['myvar' => 'B00LHILHS8']) возвращает документ, как хотел. Но findBy(['myvar' => ['B00LHILHS8', 'B00WSCCMV8']]) возвращает результат empty.

Я не уверен, если это правильно. Как указывает Doctrine Manual - Working with objects - By Simple Conditions, следует иметь возможность передать массив для метода findBy().

Должен ли я использовать построитель запросов?

+0

MyVar является тег и B00LHILHS8 это значение ?? – Cuchu

+0

@Cuchu - Да. У меня есть документ с полем с отдельными полями, и «myvar» является одним из них. – Roman

ответ

2

использование доктриной-MongoDB-с условными ODM операторов [link]

попробовать:

$qb = $dm->createQueryBuilder('Entity') 
    ->field('myvar')->in(array('B00LHILHS8', 'B00WSCCMV8')); 
+0

Я использую доктрину, но с mysql и mongodb с php api. – Cuchu

+0

, а затем $ query = $ qb-> getQuery(); $ result = $ query-> execute(); – Cuchu

+0

Спасибо, работая с 'QueryBuilder' помогла мне, но проблема в том, что' findBy() 'похоже, не работает с Doctrine и MongoDB должным образом. С mysql он делает. – Roman