我是RavenDB的新手,根据我的理解,当您要求提供文档时,您将获得整个文档(除非您使用某种索引等).
示例场景
以博客文档方案为例,文档如下所示:
public class Blog
{
public string Id { get; set; }
public string AuthorId { get; set; }
public DateTime PublishedUTC { get; set; }
public string Title { get; set; }
public string Content { get; set; }
public Comment[] Comments { get; set; }
}
public class Comment
{
public string Id { get; set; }
public string AuthorId { get; set; }
public DateTime PublishedUTC { get; set; }
public string Content { get; set; }
}
假设我们有一个网页/博客/帖子/.该页面显示每个博客的博客帖子和评论的分页集.我了解如何使用Skip()和Take()方法在Blog文档上使用分页.我想将分页逻辑应用于每个Blog文档的内部Comments集合.
我的问题
>我如何获得一组分页的博客和每个分页的分页
他们的评论?
>鉴于分页要求,您是否会更改给定的博客
文档场景,以便评论不在博客中
文献?
解决方法:
>如果您使用.Skip()和.Take()来获取博客帖子的分页列表,那么您已经做得对了.为了在注释上获得分页列表,您可以在内存列表中使用相同的方法(然后它将是linq-to-objects).因此,我建议将Comment []数组更改为List< Comment>,然后您可以使用这两种linq方法.
>如果我更改帖子文档以使其不包含注释,我就不会这样做因为分页(没有缺点,请参阅我的第一点),但是因为节省了数据库请求的带宽.我会有两个文件,一个包含另一个包含所有评论的帖子.这样,每次要显示帖子列表时都不需要加载所有注释,但在实际需要时仍然具有文档数据库优势.使用RavenDB,在评论项目上定义索引也很容易,以防您在其他地方需要它们(侧边栏等).您可以在RaccoonBlog中找到这个实现.
标签:c,nosql,ravendb 来源: https://codeday.me/bug/20190630/1335628.html
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。