在MongoDB中实施包含总页面的嵌入式分页
-
26-10-2019 - |
题
我已经退房了 一个较旧的问题 这与我的嵌入式分页情况有关。尽管带有切片的嵌入式分页效果很好,但 总页面 解决方案仍然缺少,我想知道是否可以在服务器端获得评论的总大小。
是否有一种方法可以查询或计算服务器上嵌入式数组的大小,而无需将整个文档获取到我的应用程序并手动计数?
我不介意为此提出2个查询,1个用于对评论进行分页,1以获取总计评论。如果我可以在一个查询中做到这一点,那将真是太神奇了。
顺便说一句,我正在使用Java驱动程序和Spring-Data MongoDB。
请分享您的想法。谢谢 !
解决方案
获得嵌入式文档总数的最佳/最快方法是创建一个额外的字段并在每个更新/插入后重新计算计数。文件将是这样
{
_id: 1,
comments: [],
commentsCount: 5
}
那么您可以简单地包括 commentsCount
何时切片:
//this query will include only 10 comments _id and comments count of root document
db.articles.find({}, {comments:{$slice: [20, 10]}, _id:1, commentsCount: 1})
实际上,没有其他方法可以计算嵌入式文档的总数(我不是在谈论M/R,因为实时请求的速度很慢)
不隶属于 StackOverflow