我已经退房了 一个较旧的问题 这与我的嵌入式分页情况有关。尽管带有切片的嵌入式分页效果很好,但 总页面 解决方案仍然缺少,我想知道是否可以在服务器端获得评论的总大小。

是否有一种方法可以查询或计算服务器上嵌入式数组的大小,而无需将整个文档获取到我的应用程序并手动计数?

我不介意为此提出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,因为实时请求的速度很慢)

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top