Documentation Index
Fetch the complete documentation index at: https://upstash.com/docs/llms.txt
Use this file to discover all available pages before exploring further.
The $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:
// This returns NO results - nothing to filter
{ $mustNot: { category: "electronics" } }
// This works - $must provides the base set, $mustNot filters it
{ $must: { inStock: true }, $mustNot: { category: "electronics" } }
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:
// Exclude documents that match category="generic" OR price > 500
{ $mustNot: [{ category: "generic" }, { price: { $gt: 500 } }] }
Examples
TypeScript
Python
Redis CLI
// Exclude out-of-stock items
await products.query({
filter: {
$must: {
category: "electronics",
},
$mustNot: {
inStock: false,
},
},
});
// Exclude multiple conditions
await products.query({
filter: {
$must: {
name: "headphones",
},
$mustNot: [{ category: "generic" }, { price: { $gt: 500 } }],
},
});
# Exclude out-of-stock items
products.query(filter={"$must": {"category": "electronics"}, "$mustNot": {"inStock": False}})
# Exclude multiple conditions
products.query(filter={
"$must": {"name": "headphones"},
"$mustNot": [{"category": "generic"}, {"price": {"$gt": 500}}],
})
# Exclude out-of-stock items
SEARCH.QUERY products '{"$must": {"category": "electronics"}, "$mustNot": {"inStock": false}}'
# Exclude multiple conditions
SEARCH.QUERY products '{"$must": {"name": "headphones"}, "$mustNot": [{"category": "generic"}, {"price": {"$gt": 500}}]}'