2010-09-28 17 views
9
में एक प्रकार की सभी दस्तावेज़ का चयन कैसे

अब तक, मैं कोशिश की है:RavenDB

public class Widget 
{ 
    public int Id; 
    public string Name; 
} 

public static class Main 
{ 
    public static void Main() 
    { 
     // Initialize store and preload with widgets... 

     using (var session = store.OpenSession()) 
     { 
      var widgets = session.Load<Widget>(); 
      foreach(var widget in widgets) 
      { 
       Console.WriteLine(widget.Name); 
      } 
     } 
    } 
} 

रहा एक सूचकांक जोड़ने और फिर एक प्रश्न के रूप में है कि सूचकांक का उपयोग करके सभी लोड करने के लिए सक्षम किया गया है:

var store = new DocumentStore(); 
store.DatabaseCommands.PutIndex("AllWidgets", new IndexDefinition<Widget> 
{ 
    Map = widget => from widget in widgets 
        select new { widget } 
}); 

// Back in Main 
var widgets = session.Query<Widget>("AllWidgets"); 
// Do stuff with widgets. 

वहाँ एक रास्ता सिर्फ एक सूचकांक बनाए बिना प्रकार Widget के सभी दस्तावेजों को प्राप्त करने के लिए है?

इस बिंदु पर मैं सिर्फ एक सैंडबॉक्स वातावरण में RavenDB के साथ खेल रहा हूं। मुझे एहसास है कि यह आमतौर पर डेटा लाने के लिए सबसे अच्छा तरीका नहीं है।

उत्तर

10

हाँ

DocumentsByName क्वेरी का उपयोग - यह जहाँ तक मैं काम कर सकते हैं के रूप में इस समय ग्राहक इंटरफ़ेस में सहज नहीं है, लेकिन इस तरह दिखता है:

documentSession.LuceneQuery<ImageDocument>("Raven/DocumentsByEntityName") 
       .Where("Tag:Widgets") 
       .Take(100) 
       .ToArray(); 

यदि आप मदद करता है कभी-कभी HTTP एपीआई को जानें :)

एनबी: ध्यान दें कि यह आपके लिए कैसे बहुलता है, यह एक सम्मेलन है और इसे ओवरराइड किया जा सकता है।

नोट: अस्थिर दोराहे में (इतनी जल्दी स्थिर होने की संभावना है, ऊपर आसानी से

documentSession.Query<ImageDocument>().Take(100).ToArray() 

बहुत अच्छे

साथ प्राप्त किया जा सकता

 संबंधित मुद्दे