在MongoDB中过滤embedded式文档

我无法理解如何在MongoDB中过滤embedded式文档,并开始认为我应该使用关系关联,但在文档存储上下文中感觉不对。

坚持一个典型的博客/评论系统,我有一个blogs的集合,每个blog有很多comments 。 注释以embedded式文档的forms存储在博客文档中。

过滤我的blogs集合非常简单,但是为了过滤每个blogembedded的comments ,我不得不将它们全部加载到内存中(全部检索到一个Ruby数组),然后遍历每个评论,返回匹配一个具体的标准。

我使用点符号过滤embedded式文档的工作正在失败,并将所有子文档带回。

有没有更好的方式让MongoDB为我过滤这些东西,还是应该让我自己去关系关联? (从长远来看,所有embedded式文档的撤回和手动过滤将会过于密集)

目前没有办法按照您所描述的方式来过滤embedded式文档。 使用点符号可以匹配embedded式文档,但是整个文档,父文档和所有文档仍然会被返回。 也可以select哪些字段将被返回,但是这也不能真正帮助你的情况。

我们有一个“虚拟集合”的情况下,将实现所需的function; 随时投票:

http://jira.mongodb.org/browse/SERVER-142

同时,您应该把意见作为自己的collections。 一般来说,如果您需要自己处理给定的数据集,请将其作为集合。 如果把它作为其他设置的一部分,最好embedded。