在mongodb中使用总页面实现嵌入式分页

在mongodb中使用总页面实现嵌入式分页,mongodb,spring-data,mongodb-java,Mongodb,Spring Data,Mongodb Java,我已经签出了与我的嵌入式分页情况相关的。尽管带切片的嵌入式分页工作正常,但仍然缺少总页面解决方案,我想知道是否有可能在服务器端获得注释的总大小 有没有一种方法可以查询或计算服务器上嵌入阵列的大小,而无需将整个文档提取到我的应用程序并手动计算 我不介意为此做两个查询,一个用于分页评论,一个用于获取评论总数。如果我能在一个查询中做到这一点,那将是惊人的 顺便说一下,我正在使用java驱动程序和spring数据mongodb 请分享你的想法。谢谢 获取嵌入文档总数的最佳/最快方法是创建一个附加字段,并

我已经签出了与我的嵌入式分页情况相关的。尽管带切片的嵌入式分页工作正常,但仍然缺少总页面解决方案,我想知道是否有可能在服务器端获得注释的总大小

有没有一种方法可以查询或计算服务器上嵌入阵列的大小,而无需将整个文档提取到我的应用程序并手动计算

我不介意为此做两个查询,一个用于分页评论,一个用于获取评论总数。如果我能在一个查询中做到这一点,那将是惊人的

顺便说一下,我正在使用java驱动程序和spring数据mongodb


请分享你的想法。谢谢

获取嵌入文档总数的最佳/最快方法是创建一个附加字段,并在每次更新/插入后重新计算计数。 文档将是这样的

{
  _id: 1,
  comments: [],
  commentsCount: 5
}
然后,您只需在执行切片时包含
commentscont
字段:

//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,因为它对于实时请求来说很慢)

你的答案对我来说就像一个头像。我已经在很多情况下使用了反规范化和计数,但我没有想到这一点。谢谢大家!@AlbertKam:非规范化是nosql数据库最好的朋友;)