Вы можете получить поведение array does not include
с помощью оператора not equal $ne
и нечувствительность к регистру с помощью сопоставления .
Рассмотрим коллекцию с несколькими тегами:
> db.coll.find({},{_id:0})
{ "tags" : [ "Tag1", "Tag2", "Tag3" ] }
{ "tags" : [ "tag1", "tag2", "tag3" ] }
{ "tags" : [ "TAG4", "TAG3", "TAG5" ] }
{ "tags" : [ "tag4", "tag6", "tag7" ] }
$ne
может использоваться для исключения точных совпадений:
> db.coll.find({tags:{$ne:"tag3"}},{_id:0})
{ "tags" : [ "Tag1", "Tag2", "Tag3" ] }
{ "tags" : [ "TAG4", "TAG3", "TAG5" ] }
{ "tags" : [ "tag4", "tag6", "tag7" ] }
При добавлении сопоставления совпадение $ne
может быть нечувствительным к регистру:
> db.coll.find({tags:{$ne:"tag3"}},{_id:0}).collation({locale:"en",strength:1})
{ "tags" : [ "tag4", "tag6", "tag7" ] }
Обратите внимание, что для использования индекса с этим запросом вам необходимо создать соответствующий индекс с тем же сопоставлением.