2010-09-28 7 views
9
bir Türü Tüm Belgeler Nasıl Seçilir

Şimdiye kadar, ben denedim şu: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); 
      } 
     } 
    } 
} 

Ben sorgu olarak bu dizini kullanarak daha sonra bir dizin ekleme ve bütün yük mümkün olmuştur:

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. 

sadece bir dizin oluşturmak zorunda kalmadan tip Widget tüm belgeleri almak için bir yolu var mı?

Bu noktada, bir kum havuzunda RavenDB ile oynuyorum. Bunun genellikle veri almanın en iyi yolu olmadığını anlıyorum.

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

O eğer yardımcı olur: bildiğim kadarıyla halledebiliriz olarak şu anda istemci arayüzünde sezgisel değil, ama şuna benzer -

cevap

10

Evet

DocumentsByName sorgusu kullanabilirsiniz HTTP API'sini bazen bilirsiniz.

NB: Sizin için nasıl çoğaldığını not edin, bu bir sözleşmedir ve geçersiz kılınabilir.

Not: kararsız çatal olarak (yakında stabil olması çok muhtemeldir, yukarıda kolayca

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

Çok güzel

ile elde edilebilir