Desde $in
no se admite en la operación agregada para una matriz, la alternativa sería usar $setIsSubset
. Para obtener más información al respecto, puede consultar este enlace. La consulta agregada ahora se vería como
db.test.aggregate([
{
$project: {
'filtered_users': {
$filter: {
input: '$users',
as: 'user',
cond: {
$setIsSubset: [['x'], '$$user.accounts']
}
}
}
}
}])
Esta consulta solo devolverá elementos que tengan [x]
como un subconjunto de la matriz en user.accounts
.