0

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

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

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

我现在想做的是从包含在子文档中的 potential_huge_array 数组中分页结果。我无法弄清楚如何在不将整个子文档、巨大的数组和所有内容从数据库中拖到我的应用程序中的情况下仅获取数组的一个子集。

有没有办法做到这一点?

不同的模式会是处理这个问题的更好方法吗?

4

2 回答 2

1

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

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

查看您最常对数据执行的查询类型通常会建议最佳模式 - 一种可以让您高效地处理查询数量、返回的数据量和轻松索引数据的模式。

于 2013-02-22T05:42:17.213 回答
0

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

于 2013-02-22T05:11:32.260 回答