Запрос дочерних коллекций в документе Ravendb - PullRequest
5 голосов
/ 23 февраля 2012

Скажем, у меня есть blog с коллекцией posts, а у каждого post есть коллекция comments.Я хочу запросить все комментарии, чтобы найти 5 самых последних по всем постам в блоге.С RDBMS вы просто идете прямо к таблице комментариев, сортируете по дате и берете 5. Возможно ли сделать что-то подобное в Ravendb, если комментарии не являются совокупным корнем?

Ответы [ 2 ]

5 голосов
/ 23 февраля 2012

highace, Да, вы, конечно, можете это сделать.Вы можете увидеть, как мы делаем нечто подобное здесь: https://github.com/ayende/RaccoonBlog/blob/master/RaccoonBlog.Web/Infrastructure/Indexes/PostComments_CreationDate.cs

2 голосов
/ 23 февраля 2012

Имеет смысл хранить ваши комментарии как отдельные документы, а не в каждом сообщении, так как в конечном итоге вы загружаете и сохраняете весь документ публикации при каждом добавлении комментария.

Имея это в виду, вы просто запроситеваши комментарии что-то вроде следующего

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