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

Seleziona i documenti in cui tutti i valori in un campo di matrice esistono in un'altra matrice

Puoi farlo usando .aggregate() metodo e il $redact operatore. Nel tuo $cond espressioni di cui hai bisogno per usare il $setIsSubset per verificare se tutti gli elementi nell'array "products" sono in "productIds". Questo perché non puoi usare $in nell'espressione condizionale

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