Bạn có thể thực hiện việc này bằng cách kết hợp nhiều toán tử:
db.test.find({tags: {$not: {$elemMatch: {$nin: ['Rad', 'Cool']}}}})
$elemMatch với $nin đang tìm tài liệu trong đó một thẻ tags phần tử không phải là 'Rad' cũng không phải là 'Cool', và sau đó là phần tử mẹ $not đảo ngược so khớp để trả về tất cả các tài liệu không khớp với bất kỳ phần tử nào.
Tuy nhiên, điều này cũng sẽ trả về các tài liệu trong đó thẻ tags bị thiếu hoặc không có phần tử. Để loại trừ những người đó, bạn cần thêm một bộ định lượng đảm bảo các thẻ tags có ít nhất một phần tử:
db.test.find({
tags: {$not: {$elemMatch: {$nin: ['Rad', 'Cool']}}},
'tags.0': {$exists: true}
})