> ## 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.

# $mustNot

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:

```ts theme={"system"}
// 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:

```ts theme={"system"}
// Exclude documents that match category="generic" OR price > 500
{ $mustNot: [{ category: "generic" }, { price: { $gt: 500 } }] }
```

### Examples

<Tabs>
  <Tab title="TypeScript">
    ```ts theme={"system"}
    // 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 } }],
      },
    });
    ```
  </Tab>

  <Tab title="Python">
    ```python theme={"system"}
    # 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}}],
    })
    ```
  </Tab>

  <Tab title="Redis CLI">
    ```bash theme={"system"}
    # 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}}]}'
    ```
  </Tab>
</Tabs>
