MongoDB
 sql >> Base de Dados >  >> NoSQL >> MongoDB

Filtre a matriz usando o operador $in no estágio $project


Desde $in não é suportado na operação agregada para array, a alternativa seria usar $setIsSubset . Para mais informações sobre isso, você pode consultar este link. A consulta agregada agora se pareceria com
db.test.aggregate([
{
    $project: {
        'filtered_users': {
            $filter: {
                input: '$users',
                as: 'user',
                cond: {
                   $setIsSubset: [['x'], '$$user.accounts']           
                }
            }
        }
    }
}])

Esta consulta retornará apenas elementos que tenham [x] como um subconjunto da matriz em user.accounts .