我需要删除Raven DB中的整个文档集合。逐个删除(文档)并不明智。是否有一种简便方法可以完成这个任务?
store.DatabaseCommands.DeleteByIndex(
"Enquiries/MyEnquiryIndexName",
new IndexQuery { Query = "Id:*", },
allowStale: false);
Marijin提供的代码示例
不确定之前的版本,但以下适用于 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}"));
}
}