我有一个mongo集合,其中包含具有如下架构的文档:
{ _id : bla,
fname : foo,
lname : bar,
subdocs [ { subdocname : doc1
field1 : one
field2 : two
potentially_huge_array : [...]
}, ...
]
}
我使用的是目前不支持elematch的ruby mongo驱动程序。当通过项目、展开和匹配管道从子域提取时,我使用聚合。
我现在想做的是对子文档中包含的potentially_huge_array数组的结果进行分页。我一直不知道如何在不将整个子域、巨大数组等从数据库拖到我的应用程序中的情况下,只获取数组的一个子集。
有办法做到这一点吗?
不同的模式会是更好的处理方式吗?
根据巨大的程度,您绝对不希望它嵌入到另一个文档中。
主要原因是,除非您总是希望数组与文档一起返回,否则您可能不希望将其作为文档的一部分存储。你如何将它存储在另一个收藏中将取决于你想要如何访问它
查看您最经常对数据执行的查询类型通常会建议最佳模式,该模式将使您在查询数量、返回的数据量和索引数据的方便性方面保持高效。
如果字段非常大并且经常更改,只需将其放在单独的集合中即可。