在mongodb子文档中分页数组

时间:2013-02-22 04:55:26

标签: arrays mongodb

我有一个mongo集合,其文档的架构结构如下:

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

我正在使用目前不支持elemMatch的ruby mongo驱动程序。我通过项目从子文件中提取,展开并匹配管道时使用聚合。

我现在要做的是从子文档中包含的potential_huge_array数组中分页结果。我还没弄清楚如何只抓取数组的一个子集而不将整个子块,大数组和所有数据从数据库中拖出到我的应用程序中。

有没有办法做到这一点?

不同的架构会更好地处理这个吗?

2 个答案:

答案 0 :(得分:1)

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

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

查看您最常对数据执行的查询类型通常会建议最佳模式 - 这将使您能够高效查询查询数量,返回的数据量以及索引数据的简便性。

答案 1 :(得分:0)

如果你真的很大并经常变化,只需将它放在单独的集合中。