Du kan göra detta genom att kombinera flera operatorer:
db.test.find({tags: {$not: {$elemMatch: {$nin: ['Rad', 'Cool']}}}})
$elemMatch
med $nin
är att hitta dokument där en enda tags
elementet är varken 'Rad' eller 'Cool', och sedan föräldern $not
inverterar matchningen för att returnera alla dokument där det inte matchade några element.
Detta kommer dock också att returnera dokument där tags
antingen saknas eller har inga element. För att utesluta dem måste du lägga till en kvalificering som säkerställer tags
har minst ett element:
db.test.find({
tags: {$not: {$elemMatch: {$nin: ['Rad', 'Cool']}}},
'tags.0': {$exists: true}
})