Da $in
non è supportato nell'operazione aggregata per array, l'alternativa sarebbe usare $setIsSubset
. Per ulteriori informazioni in merito puoi fare riferimento a questo link. La query aggregata ora apparirà come
db.test.aggregate([
{
$project: {
'filtered_users': {
$filter: {
input: '$users',
as: 'user',
cond: {
$setIsSubset: [['x'], '$$user.accounts']
}
}
}
}
}])
Questa query restituirà solo elementi che hanno [x]
come sottoinsieme dell'array in user.accounts
.