我有一个这样的文件
{
"_id": {
"$oid": "5c7369826023661073802f63"
},
"participants": [
{
"id": "ABC",
"nickname": "USER1",
},
{
"id": "DEF",
"nickname": "USER2",
}
]},... etc, et
我想找到包含您提供的两个ID的记录
我尝试这个。
moodel.aggregate([
{
$match:{'participants.id':idOne}
},{
$project:{
list:{
$filter:{
input:'$list',
as:'item',
cond: {$eq: ['$$item.participants.id', idTwo]}
}
},
}
}
])
但结果是:
[ { _id: 5c7369826023661073802f63, list: null }]
我希望它只返回与两个ID匹配的记录。
答案 0 :(得分:0)
使用$ elematch和$ in
Static Website with Hugo, Cloudflare and Automated Builds using Google Cloud
https://docs.mongodb.com/manual/reference/operator/query/elemMatch/
db.moodel.find({"participants": {$elemMatch: {id: {$in: [idOne, idTwo]}}}})