2013-03-03 56 views
0

这是我的结构。主义的等于,不返回预期的结果,

{ 
    "title" : "wastelands", 
    "playerLimit" : [ 
    1, 
    2, 
    4 ], 
    "mode" : "coop" 
} 

现在我想选择playerLimit包含任意值的地方,用mongodb我可以这样做。

> db.Map.find({playerLimit : 4}) 
{ "title" : "wastelands", "playerLimit" : [ 1, 2, 4 ], "mode" : "coop" } 

我估计将对应于这一教义

$q = $this->get('doctrine_mongodb') 
->getRepository('AcmeGameBundle:Map') 
>createQueryBuilder(); 
$q->field('playerLimit')->equals($playerLimit); 

$ playerLimit为4,所有在执行时是空我得到。

这是如何完成的? Docs似乎没有足够清晰的解释。

谢谢。

回答

1

事实证明,这

$q->field('playerLimit')->equals($playerLimit); 

INFACT做的工作就像预期,但paramFetcher中的Symfony被取整为一个字符串。

溶液因此是

$q->field('playerLimit')->equals((int) $playerLimit);