更具体地说,在 Raven DB 中,我想创建一个具有如下签名的通用方法:
public void Clear<T>() {...
然后让 Raven DB 清除给定类型的所有文档。
我从 Ayende 的其他帖子中了解到类似的问题,您需要一个索引来批量执行此操作。
我认为这将涉及创建一个映射每个文档类型的索引 - 这似乎需要大量工作。
有谁知道创建上述方法的有效方法,该方法将直接在数据库中执行集合删除?
我假设您想从 .NET 客户端执行此操作。如果是这样,请使用标准DocumentsByEntityName
index:
var indexQuery = new IndexQuery { Query = "Tag:" + collectionName };
session.Advanced.DocumentStore.DatabaseCommands.DeleteByIndex(
"Raven/DocumentsByEntityName",
indexQuery,
new BulkOperationOptions { AllowStale = true });
var hilo = session.Advanced.DocumentStore.DatabaseCommands.Get("Raven/Hilo/", collectionName);
if (hilo != null) {
session.Advanced.DocumentStore.DatabaseCommands.Delete(hilo.Key, hilo.Etag);
}
Where collectionName
是您收藏的实际名称。
第一个操作删除项目。第二个删除高低文件 http://www.ravendb.net/docs/article-page/3.5/csharp/client-api/document-identifiers/hilo-algorithm.
另请查看官方文档 -如何使用索引删除或更新文档 https://ravendb.net/docs/article-page/3.5/csharp/client-api/commands/documents/how-to/delete-or-update-documents-using-index.
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)