Du kan gøre dette ved at kombinere flere operatorer:
db.test.find({tags: {$not: {$elemMatch: {$nin: ['Rad', 'Cool']}}}})
$elemMatch
med $nin
er at finde de dokumenter, hvor en enkelt tags
element er hverken 'Rad' eller 'Cool', og derefter det overordnede $not
inverterer matchet for at returnere alle de dokumenter, hvor det ikke matchede nogen elementer.
Dette vil dog også returnere dokumenter, hvor tags
enten mangler eller har ingen elementer. For at ekskludere dem skal du tilføje en kvalifikator, der sikrer tags
har mindst ét element:
db.test.find({
tags: {$not: {$elemMatch: {$nin: ['Rad', 'Cool']}}},
'tags.0': {$exists: true}
})