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

Sélectionner les documents où toutes les valeurs d'un champ de tableau existent dans un autre tableau

Vous pouvez le faire en utilisant le .aggregate() et la méthode $redact opérateur. Dans votre $cond expressions dont vous avez besoin pour utiliser le $setIsSubset afin de vérifier si tous les éléments du tableau "products" sont dans "productIds". C'est parce que vous ne pouvez pas utiliser $in dans l'expression conditionnelle

var productIds = [139,72,73,1,6];
db.customers.aggregate([ 
    { "$redact": { 
        "$cond": [ 
            { "$setIsSubset": [ "$products", productIds ] },
            "$$KEEP",
            "$$PRUNE" 
        ] 
    }} 
])