我需要檢索出現在數據庫中的所有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. CKAN:如何獲取數據集名稱?
- 5. 如何通過程序從實體獲取帶有模式名稱的數據庫表名稱
- 6. Symfony2 - 獲取實體名稱
- 7. 如何從Java中的數據源名稱獲取sqlserver數據庫名稱
- 8. 如何按名稱獲取數據庫?
- 9. 從數據源名稱獲取實例名稱
- 10. PHP/MYSQL從名稱數據庫獲取user_id使用名稱
- 11. 如何從JSON數組中獲取具有某個名稱的所有實體
- 12. 如何獲取實體中所有屬性的名稱?
- 13. JDBC - 從OpenOffice數據庫獲取所有表名稱
- 14. 從多個服務器獲取所有數據庫名稱
- 15. 指定集合名稱在RavenDB
- 16. 如何從PHP中的URL中獲取數據庫名稱和表名稱?
- 17. 如何使用tsql獲取SQL Server實例中的所有數據庫名稱?
- 18. 如何獲取我的表所屬的數據庫的名稱?
- 19. 使用.net獲取名稱表,名稱列,名稱數據
- 20. 從WCF數據服務請求中獲取實體名稱
- 21. 如何獲得RavenDB文件的名稱
- 22. 通過JDBC獲取所有數據庫名稱
- 23. 使用mongoid獲取所有數據庫名稱?
- 24. 獲取我數據庫上所有表的名稱
- 25. 獲取mongodb集合中的所有字段名稱?
- 26. MongoDB獲取集合中所有鍵的名稱
- 27. 獲取所有功能參數名稱
- 28. DB獲取當前數據庫名稱
- 29. PHP - 獲取數據庫名稱列表
- 30. 獲取Oracle數據庫名稱
你嘗試過在自己的盧卡斯是什麼類型的網絡搜索。 。? – 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搜索選擇,但沒有工作:(我甚至不知道這是否是正確的方式 –