mongodb子文档中的分页数组



我有一个mongo集合,其中包含具有如下架构的文档:

{ _id : bla,
  fname : foo,
  lname : bar,
  subdocs [ { subdocname : doc1
             field1 : one
             field2 : two
             potentially_huge_array : [...]
            }, ...
  ]
}

我使用的是目前不支持elematch的ruby mongo驱动程序。当通过项目、展开和匹配管道从子域提取时,我使用聚合。

我现在想做的是对子文档中包含的potentially_huge_array数组的结果进行分页。我一直不知道如何在不将整个子域、巨大数组等从数据库拖到我的应用程序中的情况下,只获取数组的一个子集。

有办法做到这一点吗?

不同的模式会是更好的处理方式吗?

根据巨大的程度,您绝对不希望它嵌入到另一个文档中。

主要原因是,除非您总是希望数组与文档一起返回,否则您可能不希望将其作为文档的一部分存储。你如何将它存储在另一个收藏中将取决于你想要如何访问它

查看您最经常对数据执行的查询类型通常会建议最佳模式,该模式将使您在查询数量、返回的数据量和索引数据的方便性方面保持高效。

如果字段非常大并且经常更改,只需将其放在单独的集合中即可。