> ## Documentation Index
> Fetch the complete documentation index at: https://docs.ditto.live/llms.txt
> Use this file to discover all available pages before exploring further.

# EVICT

> DQL language syntax for evicting documents locally

<Info>
  To permanently delete a document from a collection see [`DELETE`](/dql/delete).
</Info>

```sql DQL theme={null}
EVICT FROM your_collection_name
WHERE [condition]
LIMIT [limit]
OFFSET [offset]
ORDER BY [order by]
```

<img src="https://mintcdn.com/ditto-248bc0d1/pf3IlRElveI85RoM/images/dql/EvictOrTombstone.svg?fit=max&auto=format&n=pf3IlRElveI85RoM&q=85&s=09050eb26691d133cb0c984edcaee263" alt="EVICT Syntax Diagram" width="795" height="359" data-path="images/dql/EvictOrTombstone.svg" />

In this syntax:

* `your_collection_name` is the name of the collection from which you want to retrieve the data.
* `[condition]` represents the condition or criteria that determine which documents should be evicted from the local peer.
* `[limit]` represents the maximum number of documents that should be evicted
* `[offset]` represents the offset from 0 that should be used for the eviction query, in practice this should be rarely used
* `[order by]` represents the path within a document to use to order the dataset and order (`ASC` or `DESC`)

## Examples of Evicting Documents

Here, documents from the `cars` collection that have the document ID `123` get removed from the Ditto store:

```sql DQL theme={null}
EVICT FROM cars
WHERE _id = '123'
```

As another example, the following snippet, once executed, results in the eviction of documents with timestamps greater than a certain value:

```sql DQL theme={null}
EVICT FROM cars
WHERE some_time_stamp > 1699888298000
```

## Removing Data from Ditto Server

Removing data from a distributed database is a difficult problem, and memory management requires careful consideration of both subscriptions and evictions.

Note that any data evicted from Ditto Server will reappear if it exists on any device running the Ditto SDK connected to Ditto Server.

To permanently remove the data, you must first ensure the data is no longer subscribed to, and is already evicted, by any connected devices running the Ditto SDK. For specifics on evicting and deleting documents in all Ditto SDKs and to learn more about our recommended strategies, see [`SDK>CRUD>Removing Documents`](/sdk/latest/crud/delete/).

Alternatively, data can be tombstoned from Ditto Server using the legacy API. See: [Writing: HTTP (Legacy)](/cloud/http-api/legacy/writing-http-legacy#remove).
