sql >> Base de Datos >  >> NoSQL >> MongoDB

Filtre la matriz usando el operador $in en la etapa $project

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 .