我让对象包含两个数组,说明如何使用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游乐场