Arrays 在monogDB中搜索JSON文档以跨数组元素查找值
我有一些复杂的文档(对于mongodb模式来说是新的,我认为它是complext),我正试图处理这些文档,以便在文档的不同数组部分之间进行特定的数组值匹配 我的文档的示例内容:Arrays 在monogDB中搜索JSON文档以跨数组元素查找值,arrays,mongodb,Arrays,Mongodb,我有一些复杂的文档(对于mongodb模式来说是新的,我认为它是complext),我正试图处理这些文档,以便在文档的不同数组部分之间进行特定的数组值匹配 我的文档的示例内容: { "_id" : ObjectId("541c0c9bdfecb53368e12ef0"), "SRVIP" : "10.10.10.10", "INSNME" : "myinstance", "DBNAME" : "mydbname", "DBGRPL" : [{ "G
{
"_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是一个值 你能给我们看一下预期的输出吗?我已经添加了预期的输出以及其他潜在的搜索需求。感谢您对如何为搜索语句编写代码以实现我的目标提出的建议。谢谢