删除RavenDB集合

时间:2011-08-11 19:38:39

标签: ravendb document-based

我需要删除Raven DB中的整个文档集。逐个删除(文件)不是明智的选择。我有办法轻松地做到这一点吗?

2 个答案:

答案 0 :(得分:6)

您可以进行基于集合的操作。

store.DatabaseCommands.DeleteByIndex()这样做

store.DatabaseCommands.DeleteByIndex(
    "Enquiries/MyEnquiryIndexName",
    new IndexQuery { Query = "Id:*", },
    allowStale: false);
@Marijin

Code sample

答案 1 :(得分:0)

不确定以前的版本,但以下适用于 RavenDB 5.0

如果您想从名为“Users”的集合中删除所有文档,您可以将集合名称传递给 DeleteByQueryOperation

DeleteByQueryOperation("from Users")

通用版本如下所示:

using Raven.Client.Documents;
using Raven.Client.Documents.Operations;

public class ExampleClass
{
  public static void DeleteCollection<TEntity>(IDocumentStore store, string databaseName)
  {
    var collectionName = store.Conventions.GetCollectionName(typeof(TEntity));

    store.Operations
      .ForDatabase(databaseName)
      .Send(new DeleteByQueryOperation($"from {collectionName}"));
  }
}