Удалить коллекцию RavenDB

Мне нужно удалить целую коллекцию документов в БД Raven. Удаление по одному (документы) не является мудрым выбором. Есть ли способ, которым я могу сделать это легко?

2 ответа

Решение

Вы можете сделать операцию на основе набора.

store.DatabaseCommands.DeleteByIndex () для этого

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

Пример кода от @Marijin

Не уверен насчет предыдущих версий, но ниже относится к RavenDB 5.0.

Если вы хотите удалить все документы из коллекции под названием «Пользователи», вы можете передать имя коллекции в 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}"));
  }
}
Другие вопросы по тегам