2012-04-25 11 views
2

私のコードです。私は単一のデータベースにすべての文書をリストしたいと思います。RavenDBドキュメントの名前を取得する方法

+0

あなたは何をしようとしていますか、なぜデータベース内のすべてのドキュメントをリストしたいのですか? –

+0

すべてのドキュメントを見たい場合は、ravendbサーバーを起動し、http:// localhost:8080/docsまたはhttp:// localhost:8080/raven/documents.htmlにアクセスしてください。 –

+0

こんにちはマット、 Ravendbと私の操作の1つのデータベース内のすべてのドキュメントを取得することです。出来ますか ? –

答えて

2

はこのような何かを試してみてください、それはもう少し汎用的だし、生の文書、指定されたデータベースのためのマット・ヴァーレンのコードを変更する

using (var session = store.OpenSession()) 
{ 
    //Issue a dummy query to make sure the indexing has finished 
    var dummyQuery = session.Query<dynamic>("Raven/DocumentsByEntityName") 
     .Customize(x => x.WaitForNonStaleResultsAsOfLastWrite()) 
     .ToList(); 

    //First get all the document types, i.e. the different entity names 
    var docTypes = store.DatabaseCommands.GetTerms("Raven/DocumentsByEntityName", "Tag", "", 128); 
    foreach (var type in docTypes) 
    { 
     Console.WriteLine("\n{0}:", type); 
     //Might need to do paging here, can only get at most 1024 docs in 1 go! 
     var docs = store.DatabaseCommands.StartsWith(type, 0, 1024).ToList(); 

    foreach (var doc in docs) 
    { 
     Console.WriteLine(" {0}: {1}", doc.Key, doc.ToJson()); 
    } 
} 

}

+0

マットありがとうございました。それは実際に動作します。これはDefaultデータベースで動作しています。 :)指定されたデータベースのコードを変更して投稿しました:) –

+0

store.DatabaseCommands.GetTerms()で文字列 "tag"を使用していますか? –

+0

「Raven/DocumentsByEntityName」が使用するフィールドの名前です。https://github.com/ravendb/ravendb/blob/master/Raven.Database/Plugins/Builtins/を参照してください。 CreateSilverlightIndexes.cs#L17 –

0

へのアクセスを可能にします。

public void DocumentNamesWithMetadata(string databaseName="1") 
     { 
      using (var session = documentStore.OpenSession(databaseName)) 
      { 
       //Issue a dummy query to make sure the indexing has finished 
       var dummyQuery = session.Query<dynamic>("Raven/DocumentsByEntityName") 
             .Customize(x => x.WaitForNonStaleResultsAsOfLastWrite()) 
             .ToList(); 

       //First get all the document types, i.e. the different entity names 
       var docTypes = session.Advanced.DatabaseCommands.GetTerms("Raven/DocumentsByEntityName", "Tag", "", 128); 
       foreach (var type in docTypes) 
       { 
        Console.WriteLine("\n{0}:", type); 
        //Might need to do paging here, can only get at most 1024 docs in 1 go! 
        var docs = session.Advanced.DatabaseCommands.StartsWith(type, 0, 1024).ToList(); 

        foreach (var doc in docs) 
        { 
         Console.WriteLine(" {0}: {1}", doc.Key, doc.ToJson()); 
        } 
       } 
      } 
     } 
関連する問題