2010-06-28 34 views
3

我想寫我自己的簡單的桌面基於RavenDB瀏覽器,類似於Web UI。這主要是爲了學習烏鴉。如何創建一個RavenDB資源管理器?

所以我的第一個任務是從數據庫中讀取所有文檔,無關他們屬於哪個應用程序。我想用客戶端API實現這一點,但似乎session.Query和session.LuceneQuery都需要類說明符。

我應該使用什麼API來執行此任務?

回答

3

客戶端API需要一個類型,因爲它設計爲與CLR POCO一起工作,因此可以爲您處理轉換(來自Json)。

您需要直接與Json一起工作,因爲您不知道類型。這就是Web UI的功能。我建議通過Java腳本代碼來查看它是如何完成的。

此外,總是有一個名爲「Raven/DocumentsByEntityName」的默認索引,您可以查詢。這將索引存儲在文檔元數據中的「Raven-Entity-Name」(對應於CLR類型)。這就是Raven使用它來允許它將Json轉換爲CLR類型。見the docs更多信息

+0

太糟糕了。我希望有一種方法可以在不採用JSon的情況下遍歷集合。 – 2010-06-28 18:14:16

7

下面將提取所有RavenDB文檔JSON:

var docStore = new DocumentStore { Url = "http://localhost:8080" }; 
using (docStore.Initialize()) 
{ 
    var docs = docStore 
     .DatabaseCommands 
     .Query("Raven/DocumentsByEntityName", new IndexQuery()); 
}