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

Selecione documentos onde todos os valores em um campo de matriz existem em outra matriz


Você pode fazer isso usando o .aggregate() e o método $redact operador. Em seu $cond expressões você precisa usar o $setIsSubset para verificar se todos os elementos do array "products" estão em "productIds". Isso ocorre porque você não pode usar $in na expressão condicional
var productIds = [139,72,73,1,6];
db.customers.aggregate([ 
    { "$redact": { 
        "$cond": [ 
            { "$setIsSubset": [ "$products", productIds ] },
            "$$KEEP",
            "$$PRUNE" 
        ] 
    }} 
])