[英]Doctrine Mongo ODM find in array
我想建立一个查询,以过滤角色数组的元素。 我需要具有角色admin或角色用户的用户。 这是我的文档(的一部分):
{
"username": "test_joe",
"email": "joe@joe.joe",
"enabled": true,
"roles": [
"admin",
"user",
"guest"
]
}
我尝试了类似的方法,但这不是正确的方法:
$qb = $dm->getRepository('AppBundle:User')->createQueryBuilder('user')
->select('email');
$qb->addOr($qb->expr()->field('roles.admin')->exists(true));
$qb->addOr($qb->expr()->field('roles.user')->exists(true));
您的文档中没有字段roles.admin
。 它是具有值数组的"roles"
字段。 MongoDB匹配在数组上是多态的,因此您可以像具有字段"roles": "admin"
一样进行匹配,因此不需要存在,但是类似->field('roles')->equals('admin')
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.