删除 RavenDB 集合

11

我需要删除Raven DB中的整个文档集合。逐个删除(文档)并不明智。是否有一种简便方法可以完成这个任务?

2个回答

6
你可以进行基于集合的操作。
使用store.DatabaseCommands.DeleteByIndex()来实现。
store.DatabaseCommands.DeleteByIndex(
    "Enquiries/MyEnquiryIndexName",
    new IndexQuery { Query = "Id:*", },
    allowStale: false);

Marijin提供的代码示例


5
我们能否举个例子?我有点脑子一片空白,无法理解它。 - Bobby Cannon

1

不确定之前的版本,但以下适用于 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}"));
  }
}

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接