[英]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.