MongoDB
 sql >> Database >  >> NoSQL >> MongoDB

Filtra l'array utilizzando l'operatore $in nella fase $progetto

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 .