كيفية تحديد جميع المستندات من نوع في RavendB

StackOverflow https://stackoverflow.com/questions/3813395

  •  26-09-2019
  •  | 
  •  

سؤال

حتى الآن ، جربت ما يلي:

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 في بيئة صندوق الرمل. أدرك أن هذا ليس هو أفضل طريقة لجلب البيانات.

هل كانت مفيدة؟

المحلول

نعم

استخدم استعلام DocumentSbyName - هذا بقدر ما أستطيع العمل ليس بديهيًا في واجهة العميل في الوقت الحالي ، ولكنه يبدو مثل هذا:

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

يساعد إذا كنت تعرف API HTTP أحيانًا :)

NB: لاحظ كيف تتردد بالنسبة لك ، هذه اتفاقية ويمكن تجاوزها.

ملاحظة: في الشوكة غير المستقرة (من المحتمل أن تكون مستقرة قريبًا ، يمكن تحقيق ما سبق بسهولة

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

افضل بكثير

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top