我需要检索出现在数据库中的所有RavenDB集合名称。有没有办法做到这一点?怎么样?如何从RavenDB数据库获取所有实体名称(集合名称)?
回答
如果你使用过工作室在所有,你会看到它创建了一个名为Raven/DocumentsByEntityName
的索引。如果你不使用的工作室,或者你想确保它的存在,你可以建立它自己:
documentStore.ExecuteIndex(new RavenDocumentsByEntityName());
是乌鸦工作室建立它的路“收藏”列表是通过获取Tag
条款来自此索引的字段。你可以做同样的事情:(如果您预计超过1024种不同的实体类型出于某种原因,然后进行分页)
var results = documentStore.DatabaseCommands
.GetTerms("Raven/DocumentsByEntityName", "Tag", "", 1024);
对不起,我无法更快地做到这一点。希望这可以帮助! –
非常感谢您的回答! –
最后,我通过尝试使用我以前学过的知识获取了解决方案。我想给广告的人广告,只有当我受到试探者的困扰时才会来到这里。
public string[] getCollectionNames()
{
using (var session = this.store.OpenSession())
{
return session.Advanced.LuceneQuery<dynamic>()
.SelectFields<dynamic>("@metadata")
.Select<dynamic, string>(x => x["@metadata"]["Raven-Entity-Name"])
.Distinct()
.ToArray();
}
}
唯一的问题是'Distinct'运行客户端。所以在得到你想要的结果之前,你必须返回大量的超额数据。 –
实际上,Distinct运行服务器端。至少当你使用Linq API来做到这一点的时候。 使用Lucene API,这确实在运行客户端。 但这不起作用,而其他选项更好 –
这个工程。就像你所说的那样,这个选项并不好。但它工作,因为我测试。我如何知道LuceneQuery Distinct在客户端运行?这是在文档? –
- 1. 如何从sqlite获取所有数据库名称和表名称
- 2. 如何从数据库获取名称?
- 3. 如何从forerunnerdb获取集合名称
- 4. 如何通过程序从实体获取带有模式名称的数据库表名称
- 5. Symfony2 - 获取实体名称
- 6. 如何从Java中的数据源名称获取sqlserver数据库名称
- 7. 如何按名称获取数据库?
- 8. 从数据源名称获取实例名称
- 9. PHP/MYSQL从名称数据库获取user_id使用名称
- 10. 如何获取实体中所有属性的名称?
- 11. 从多个服务器获取所有数据库名称
- 12. 指定集合名称在RavenDB
- 13. 如何从PHP中的URL中获取数据库名称和表名称?
- 14. 如何使用tsql获取SQL Server实例中的所有数据库名称?
- 15. 如何获取我的表所属的数据库的名称?
- 16. 使用.net获取名称表,名称列,名称数据
- 17. 从WCF数据服务请求中获取实体名称
- 18. 如何获得RavenDB文件的名称
- 19. 获取我数据库上所有表的名称
- 20. 使用mongoid获取所有数据库名称?
- 21. 获取所有功能参数名称
- 22. MongoDB获取集合中所有键的名称
- 23. PHP - 获取数据库名称列表
- 24. 获取Oracle数据库名称
- 25. DB获取当前数据库名称
- 26. 按名称获取VBA集合项目
- 27. 获取MongoDB当前集合名称
- 28. 从demangled名称获取错位名称
- 29. 如何提取Freebase中所有实体的名称和类型?
- 30. 如何从config.php获取数据库名称
你尝试过在自己的卢卡斯是什么类型的网络搜索。 。? – MethodMan
这里是一个很好的开始卢卡斯开始阅读位于这里的文档[新手指南RavenDB](http://www.w3enterprises.com/articles/beginner-guide-to-ravendb.aspx) – MethodMan
我试图用Map创建索引docs => doc fromselect new { Name = MetadataFor(doc).Value(“Raven-Entity-Name”) };和我执行了一个LINQ搜索选择,但没有工作:(我甚至不知道这是否是正确的方式 –