A2oz

How do I bulk delete documents in Cosmos DB?

Published in Cosmos DB 2 mins read

You can bulk delete documents in Cosmos DB using a variety of methods:

  • Stored Procedures: Write a stored procedure that iterates through a set of documents and deletes them. This is useful when you need to delete documents based on specific criteria or perform conditional deletes.
  • Bulk Executor Library: Use the Bulk Executor Library for .NET, which offers a bulk delete feature to efficiently remove large numbers of documents. This library optimizes throughput consumption and speeds up the process.
  • Azure Data Factory (ADF): Utilize ADF to create a pipeline that bulk deletes documents. ADF allows you to define the deletion logic and parameters for your pipeline.
  • Time To Live (TTL): Set a TTL property for your container's items. By setting it to a short duration, Cosmos DB automatically deletes all items in the container after the specified time.

Example using a Stored Procedure:

// Sample Stored Procedure
function BulkDelete(partitionKey) {
    var collection = getContext().getCollection();
    var querySpec = {
        query: 'SELECT * FROM c WHERE c.partitionKey = @partitionKey',
        parameters: [{ name: '@partitionKey', value: partitionKey }]
    };
    var continuation = null;
    while (true) {
        var results = collection.queryDocuments(querySpec, continuation);
        continuation = results.continuationToken;
        if (results.results) {
            results.results.forEach(function (document) {
                collection.deleteDocument(document._self);
            });
        }
        if (!continuation) {
            break;
        }
    }
}

Note: Each method offers specific advantages depending on your needs and the size of the data you are deleting. Research and choose the most suitable approach for your use case.

Related Articles