U kunt dit doen door meerdere operators te combineren:
db.test.find({tags: {$not: {$elemMatch: {$nin: ['Rad', 'Cool']}}}})
De $elemMatch
met de $nin
is het vinden van de documenten waar een enkele tags
element is niet 'Rad' of 'Cool', en dan is de bovenliggende $not
keert de overeenkomst om om alle documenten terug te geven waar die met geen enkel element overeenkwamen.
Dit levert echter ook documenten op waarin tags
ontbreekt of bevat geen elementen. Om deze uit te sluiten, moet u een kwalificatie toevoegen die zorgt voor tags
heeft ten minste één element:
db.test.find({
tags: {$not: {$elemMatch: {$nin: ['Rad', 'Cool']}}},
'tags.0': {$exists: true}
})