Arrays 在monogDB中搜索JSON文档以跨数组元素查找值

Arrays 在monogDB中搜索JSON文档以跨数组元素查找值,arrays,mongodb,Arrays,Mongodb,我有一些复杂的文档(对于mongodb模式来说是新的,我认为它是complext),我正试图处理这些文档,以便在文档的不同数组部分之间进行特定的数组值匹配 我的文档的示例内容: { "_id" : ObjectId("541c0c9bdfecb53368e12ef0"), "SRVIP" : "10.10.10.10", "INSNME" : "myinstance", "DBNAME" : "mydbname", "DBGRPL" : [{ "G

我有一些复杂的文档(对于mongodb模式来说是新的,我认为它是complext),我正试图处理这些文档,以便在文档的不同数组部分之间进行特定的数组值匹配

我的文档的示例内容:

    {  
"_id" : ObjectId("541c0c9bdfecb53368e12ef0"),  
"SRVIP" : "10.10.10.10",  
"INSNME" : "myinstance",  
"DBNAME" : "mydbname",  
"DBGRPL" : [{  
        "GRPNME" : "grp1",  
        "GRPPRV" : "7",  
        "GRPAUT" : [ “AUTH1”,”AUTH2”],  
        "GRPUSR" : [    "USER1",”USER2”]  
    }  
],  
"SAUTLV" : [    { "SAUNME" : "USER4",  
           "SAUPRV" : "0",  
           "SAUAUT" : [ “AUTH2”,”AUTH3”],  
            "SAUUSR" : [ "USER2" ]  
    }  
],  
"USRLVL" : [  
{ "ULVNME" : "USER1",  
              "ULVPRV" : "0",  
              "ULVAUT" : [ "AUTH1","AUTH2","AUTH3"]  
        },  
        {  
    "ULVNME" : "USER2",  
            "ULVPRV" : "2411",  
            "ULVAUT" : [ "AUTH3"]  
        }  
    ]  
} 
我试图只返回文档中存在例如USER1的部分 目前,我已经创建了两个不同的聚合语句来检索信息,但我正在使用一个语句来搜索文档中的所有数组

Retrieving USER1 statement on DBGRPL array level : 

var var1=[“USER1”]
db.authinfo.aggregate({$unwind:"$DBGRPL"},{$match:{"DBGRPL.GRPUSR":{$in:var1}}},{$project:{SRVIP:1,DBNAME:1,"DBGRPL":1}})

var var1=”USER1”
Retrieving USER1 statement on USRLVL array level:
db.authinfo.aggregate({$unwind:"$USRLVL"},{$match:{"USRLVL.ULVNME":var1}},{$project:{SRVIP:1,DBNAME:1,"USRLVL":1}}) 
上述方法的明显错误是使用了两种不同的变量类型进行查询,这也是我目前无法解决的问题

如何将搜索合并到单个语句中

预期产出:

{  
"_id" : ObjectId("541c0c9bdfecb53368e12ef0"),  
"SRVIP" : "10.10.10.10",  
"INSNME" : "myinstance",  
"DBNAME" : "mydbname",  
"DBGRPL" : [{  
        "GRPNME" : "grp1",  
        "GRPPRV" : "7",  
        "GRPAUT" : [ “AUTH1”,”AUTH2”],  
        "GRPUSR" : [    "USER1",”USER2”]  
    }  
],  
"USRLVL" : [  
{ "ULVNME" : "USER1",  
              "ULVPRV" : "0",  
              "ULVAUT" : [ "AUTH1","AUTH2","AUTH3"]  
        }  
        {  
    ]  
} 
当搜索USER1时


我还将搜索文档中的GRPAUTH、SAUAUT和ULVAUTH部分,其中say AUTH1是一个值

你能给我们看一下预期的输出吗?我已经添加了预期的输出以及其他潜在的搜索需求。感谢您对如何为搜索语句编写代码以实现我的目标提出的建议。谢谢