MongoDB
 sql >> Base de données >  >> NoSQL >> MongoDB

Filtrer le tableau à l'aide de l'opérateur $in dans l'étape $project

Depuis $in n'est pas pris en charge dans l'opération d'agrégation pour le tableau, l'alternative serait que vous utilisiez $setIsSubset . Pour plus d'informations à ce sujet, vous pouvez consulter ce lien. La requête agrégée ressemblerait maintenant à

db.test.aggregate([
{
    $project: {
        'filtered_users': {
            $filter: {
                input: '$users',
                as: 'user',
                cond: {
                   $setIsSubset: [['x'], '$$user.accounts']           
                }
            }
        }
    }
}])

Cette requête renverra uniquement les éléments qui ont [x] en tant que sous-ensemble du tableau dans user.accounts .