Sedan $in
stöds inte i aggregerad operation för array, alternativet skulle vara att du använder $setIsSubset
. För mer information om detta kan du hänvisa till denna länk. Den sammanlagda frågan skulle nu se ut som
db.test.aggregate([
{
$project: {
'filtered_users': {
$filter: {
input: '$users',
as: 'user',
cond: {
$setIsSubset: [['x'], '$$user.accounts']
}
}
}
}
}])
Denna fråga returnerar endast element som har [x]
som en delmängd av arrayen i user.accounts
.