这是我的结构。
{
"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,执行时我得到的全部是null。
这是怎么做到的? Docs似乎没有足够清楚地解释。
谢谢。
答案 0 :(得分:1)
事实证明,
$q->field('playerLimit')->equals($playerLimit);
infact确实像预期的那样工作,但Symfony中的paramFetcher将整数作为String获取。
因此解决方案是
$q->field('playerLimit')->equals( (int) $playerLimit);