我需要删除Raven DB中的整个文档集。逐个删除(文件)不是明智的选择。我有办法轻松地做到这一点吗?
答案 0 :(得分:6)
您可以进行基于集合的操作。
store.DatabaseCommands.DeleteByIndex()这样做
store.DatabaseCommands.DeleteByIndex(
"Enquiries/MyEnquiryIndexName",
new IndexQuery { Query = "Id:*", },
allowStale: false);
@Marijin
答案 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}"));
}
}