我有一个mongo集合,其文档的架构结构如下:
{ _id : bla,
fname : foo,
lname : bar,
subdocs [ { subdocname : doc1
field1 : one
field2 : two
potentially_huge_array : [...]
}, ...
]
}
我正在使用目前不支持elemMatch的ruby mongo驱动程序。我通过项目从子文件中提取,展开并匹配管道时使用聚合。
我现在要做的是从子文档中包含的potential_huge_array数组中分页结果。我还没弄清楚如何只抓取数组的一个子集而不将整个子块,大数组和所有数据从数据库中拖出到我的应用程序中。
有没有办法做到这一点?
不同的架构会更好地处理这个吗?
答案 0 :(得分:1)
根据巨大的巨大程度,您绝对不希望它嵌入到另一个文档中。
主要原因是除非您总是希望随文档返回的数组,否则您可能不希望将其存储为文档的一部分。如何将它存储在另一个集合中将取决于您想要如何访问它。
查看您最常对数据执行的查询类型通常会建议最佳模式 - 这将使您能够高效查询查询数量,返回的数据量以及索引数据的简便性。
答案 1 :(得分:0)
如果你真的很大并经常变化,只需将它放在单独的集合中。