一个对象包含两个数组.如何匹配所有数组中的id



我让对象包含两个数组,说明如何使用or条件匹配这两个数组中的id。

例如

{
stauts:"matched",
members:{
groupA:[{
"userName" : "Malik",
"firstName" : "Adil",
"_id" : "5f3d05ceb1268c1cc208ef90",
}],
groupB:[{
"userName" : "Simi",
"firstName" : "Doe",
"_id" : "5f37b790b9c01886b29238fc",
},{
"userName" : "GK",
"firstName" : "gk",
"_id" : "5f3d05ceb1268c1cc208ef90",
}]
}
}

我有一个成员的id,想获取记录的详细信息。

您可以使用$filter使用_id进行筛选。

[
{
$project: {
groupA: {
$filter: {
input: "$members.groupA",
cond: {
$eq: [
"$$this._id",
"5f3d05ceb1268c1cc208ef90"
]
}
}
},
groupB: {
$filter: {
input: "$members.groupB",
cond: {
$eq: [
"$$this._id",
"5f3d05ceb1268c1cc208ef90"
]
}
}
}
}
}
]

工作Mongo游乐场

最新更新