在MongoDB中过滤embedded式文档
我无法理解如何在MongoDB中过滤embedded式文档,并开始认为我应该使用关系关联,但在文档存储上下文中感觉不对。
坚持一个典型的博客/评论系统,我有一个blogs
的集合,每个blog
有很多comments
。 注释以embedded式文档的forms存储在博客文档中。
过滤我的blogs
集合非常简单,但是为了过滤每个blog
embedded的comments
,我不得不将它们全部加载到内存中(全部检索到一个Ruby数组),然后遍历每个评论,返回匹配一个具体的标准。
我使用点符号过滤embedded式文档的工作正在失败,并将所有子文档带回。
有没有更好的方式让MongoDB为我过滤这些东西,还是应该让我自己去关系关联? (从长远来看,所有embedded式文档的撤回和手动过滤将会过于密集)
目前没有办法按照您所描述的方式来过滤embedded式文档。 使用点符号可以匹配embedded式文档,但是整个文档,父文档和所有文档仍然会被返回。 也可以select哪些字段将被返回,但是这也不能真正帮助你的情况。
我们有一个“虚拟集合”的情况下,将实现所需的function; 随时投票:
http://jira.mongodb.org/browse/SERVER-142
同时,您应该把意见作为自己的collections。 一般来说,如果您需要自己处理给定的数据集,请将其作为集合。 如果把它作为其他设置的一部分,最好embedded。