Предположим, у нас есть следующий индекс карты:
public class CommentsIndex : AbstractIndexCreationTask<Post>
{
public class IndexResult
{
public string PostId {get;set;}
public DateTime CommentDateTime {get;set;}
}
public CommentsIndex()
{
Map = posts => from post in posts
from comment in post.Comment
select new { PostId = post.Id, CommentDateTime = comment.DateTime };
}
}
Результатом этого запроса индекса будет коллекция документов Post.Но как я могу запросить его по CommentDateTime
?Следующий запрос определенно не будет работать, так как CommentDateTime
не является частью Post
документа:
_documentSession.Query<Post, CommentsIndex>().Where(x => x.CommentDateTime < DateTime.UtcNow).ToList();
PS Я знаю, что могу использовать прямую проекцию или вызов AsProjection
для формирования результата запроса индекса, но ядумаю, для такого простого случая должно быть более естественное решение.