Удалить коллекцию 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}"));
}
}