You are currently browsing legacy 1.0 version of documentation. Click here to switch to the newest 5.1 version.

We can help you with migration to the latest RavenDB

Contact Us Now
see on GitHub

Cascade Delete Bundle

The cascade delete bundle allows for a specified set of documents and attachments to be deleted when the document that owns it is deleted. Typical usage scenarios include deleting an attachment that is referenced by a document or removing a set of child documents referenced by a parent document.


Simply place the Raven.Bundles.CascadeDelete.dll in the Plugins directory.


You can specify the documents and attachments to be cascade deleted using the following code:

using (var session = documentStore.OpenSession())
	session.Advanced.GetMetadataFor(parent)["Raven-Cascade-Delete-Documents"] = RavenJArray.FromObject(new[] { "childId1", "childId2" });
	session.Advanced.GetMetadataFor(parent)["Raven-Cascade-Delete-Attachments"] = RavenJArray.FromObject(new[] { "attachmentId1", " attachmentId2" });

When the "parent" document is deleted, the documents with IDs "childId1" and "childId2" and the attachments with IDs "attachmentId1" and "attachmentId2" will be deleted as well.


  1. The "Raven-Cascade-Delete-Documents" and "Raven-Cascade-Delete-Attachments" collections are independent of each other; a document can specify from zero to any number of either documents or attachments to be cascade deleted.
  2. Cascade Delete works only within a single node. If you have a sharded data set, cascading will not delete documents / attachments that are located on other nodes.