簡體   English   中英

教義Mongo ODM在陣列中找到

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

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM