如何在symfony2中选择mongodb doctrine的某些字段

时间:2014-01-03 10:19:04

标签: php mongodb symfony doctrine-orm doctrine

我想从我的mongo数据库中找到一些文档,我正在使用函数:FindBy() 不幸的是,这个函数没有任何字段选择参数,如本机mongodb驱动程序具有函数:find()。 有没有人知道如何在Mongodb的学说中选择自定义字段? 感谢

3 个答案:

答案 0 :(得分:6)

您需要将QueryBuilder与select运算符一起使用:

$result = $dm->createQueryBuilder('User')->select('field1', 'field2')->field('field3')->equals('somevalue')->getQuery()->execute();

http://docs.doctrine-project.org/projects/doctrine-mongodb-odm/en/latest/reference/query-builder-api.html

答案 1 :(得分:0)

findBy支持运算符,但提供的参数应该是一个数组,其字段名称为第一维的键,如下所示:

$results = $yourRepositoryInstance->findBy(['somefield' => ['$in' => $arrayOfValues]]);

答案 2 :(得分:0)

如果您需要动态地选择字段,请使用字段名称作为数组。

$selects = ['field1','field2','field3'];  // you can pass through api or else
$result = $dm->createQueryBuilder('Collection')->select($selects)->getQuery()->execute();