$mustNot operator excludes documents that match any of the specified conditions.
It acts as a filter, removing matching documents from the result set.
The $mustNot operator only filters results—it never adds documents to the result set.
This means it must be combined with $must or $should to define which documents to search.
A query with only $mustNot returns no results because there is no base set to filter:
Excluding Multiple Conditions
When$mustNot contains multiple conditions (via array or object), documents matching ANY of those conditions are excluded.
This is effectively an OR within the exclusion:
Examples
- TypeScript
- Redis CLI