如果我有一个用于存储嵌入评论的文章的集合,当从数据库检索数据时,我将得到一个带有完整评论列表的文章对象,支持有很多评论,所以这可能是加载效率的问题,我该如何通过分页评论来处理这个问题?我必须使用单独的评论集合吗?或者还有什么?提前谢谢。
您正在寻找 $slice 运算符。
要通过分页检索评论,您需要这样的代码:
db.articles.find({}, {comments:{$slice: [20, 10]}}) // skip 20, limit 10
此操作将返回仅包含切片评论的文章。 )
最大的问题是:
您的用户对评论更感兴趣还是对查看的上下文更感兴趣?
高度: 将评论放在单独的文档中,然后首先加载它们! 然后通过 AJAX 发送“辅助”内容。
适度: 使用安德鲁的解决方案。 (并且不要忘记您也可以省略查询中的字段)
几乎: 将评论放在单独的文档中,然后加载它们last(通过 AJAX)。
(使用 AJAX 还可以为您提供通过简单向下滚动来扩展加载的评论的好功能)