【发布时间】:2011-08-11 19:38:38
【问题描述】:
我需要删除 Raven DB 中的整个文档集合。逐一删除(文档)不是明智的选择。有没有办法让我轻松做到这一点?
【问题讨论】:
我需要删除 Raven DB 中的整个文档集合。逐一删除(文档)不是明智的选择。有没有办法让我轻松做到这一点?
【问题讨论】:
您可以进行基于集合的操作。
store.DatabaseCommands.DeleteByIndex() 这样做
store.DatabaseCommands.DeleteByIndex(
"Enquiries/MyEnquiryIndexName",
new IndexQuery { Query = "Id:*", },
allowStale: false);
Code sample@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}"));
}
}
【讨论】: