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

Correspondance d'un champ de tableau contenant n'importe quelle combinaison du tableau fourni dans MongoDB

Vous pouvez le faire en combinant plusieurs opérateurs :

db.test.find({tags: {$not: {$elemMatch: {$nin: ['Rad', 'Cool']}}}})

Le $elemMatch avec le $nin trouve les docs où un seul tags l'élément n'est ni 'Rad' ni 'Cool', puis le parent $not inverse la correspondance pour renvoyer tous les documents où cela ne correspondait à aucun élément.

Cependant, cela renverra également les documents où tags est manquant ou ne contient aucun élément. Pour les exclure, vous devez ajouter un qualificatif qui garantit les tags a au moins un élément :

db.test.find({
    tags: {$not: {$elemMatch: {$nin: ['Rad', 'Cool']}}},
    'tags.0': {$exists: true}
})