2012-02-22 11 views
5

Powiedz, że mam blog z kolekcją , a każdy post ma kolekcję comments. Chcę zapytać wszystkie komentarze, aby znaleźć 5 ostatnich we wszystkich wpisach na blogu. Z RDBMS po prostu idź prosto do tabeli komentarzy, sortuj według daty i weź 5. ​​Czy jest możliwe zrobienie czegoś podobnego w Ravendb, skoro komentarze nie są zagregowanym rootem?Wywoływanie kolekcji podrzędnych w dokumencie Ravendb

Odpowiedz

2

Ma sens przechowywanie komentarzy jako osobnych dokumentów, a nie w każdym poście, w przeciwnym razie kończy się ładowanie i zapisywanie całego dokumentu pocztowego za każdym razem, gdy dodawany jest komentarz.

Mając to na uwadze, że po prostu zapytać komentarze coś następującym

session.Query<Comment>().OrderByDescending(x => x.CommentDate).Take(5) 
+0

Myślałem, że tak będzie. Jak połączyć je z postem nadrzędnym? - Podaj im fałszywe pole klucza obcego, a następnie wykonaj inne zapytanie w oparciu o to? – highace

+0

Nie jestem pewien, czy mogę dodać wiele do poniższego artykułu, który wyjaśnia różne opcje tworzenia relacji z dokumentami, zobacz, czy to pomaga http://daniellang.net/how-to-handle-relations-in-ravendb/ Prawdopodobnie dodanie właściwość postId do komentarza i użyj opcji Uwzględnij byłaby strategią, którą wybrałbym na –

+0

Fantastyczne, wielkie dzięki. – highace

Powiązane problemy