Допустим, у меня есть сообщение и коллекция комментариев,
public class Post {
String title;
List<Comment> comments;
}
public class Comment {
Date date;
String author;
String comment;
}
Я бы хотел знать для определенного заголовка сообщения, что является самым последним комментарием в конкретном диапазоне дат.Результат будет представлен в виде проекции со следующей структурой:
public class Result {
String postTitle;
Date commentDate
String commentAuthor;
String comment;
}
Я изо всех сил пытаюсь заставить это работать, я пробовал несколько подходов, но не смог сделать это правильно.У меня есть индекс для этого, но я не совсем уверен, как я могу получить только последнюю запись дочернего элемента.Я получаю все записи в диапазоне дат, а не только последнюю запись.
Это мой индекс:
public Posts_LastCommentDateRange() {
map = "docs.Posts.SelectMany(post => post.comments, (post, comment) => new {" +
" post.title," +
" commentDate = comment.date," +
" commentAuthor = comment.author," +
" comment.comment" +
"})";
}
Это мой запрос:
List<Result> res = session.query( Result.class, Posts_LastCommentDateRange.class )
.whereEquals( "title", "RavenDB Date Range" )
.whereBetween( "commentDate", "2019-01-02T10:27:18.7970000Z", "2019-01-25T15:01:23.8750000Z" )
.selectFields( Result.class )
.toList();
Любая помощь или направление будет высоко ценится.
Спасибо