我无法掌握如何在MongoDB中过滤嵌入式文档,并开始认为我应该使用关系关联,但在文档存储上下文中感觉不对.
坚持使用典型的博客/评论系统,我有一个集合blogs
,每个blog
都有很多comments
.注释作为嵌入文档存储在博客文档中.
过滤我的blogs
集合非常简单,但是为了过滤我comments
在每个集合中的嵌入blog
,我必须将它们全部加载到内存中(将所有内容全部检索到Ruby数组中),并循环遍历每个注释,返回符合特定条件的注释.
我使用点表示法过滤嵌入式文档的努力失败了,并且还带回了所有子文档.
是否有更好的方法让MongoDB为我过滤这些,或者我应该让自己辞去关系联想?(从长远来看,拉回所有嵌入的文档并手动过滤将会过于密集)
目前无法按照您描述的方式过滤嵌入式文档.使用点表示法可以在嵌入的文档上进行匹配,但仍将返回整个文档,父文档和所有文档.也可以选择返回哪些字段,但这对你的情况也没有帮助.
我们有一个"虚拟集合"案例,它将实现所需的功能; 随意投票:
http://jira.mongodb.org/browse/SERVER-142
与此同时,您应该将评论视为自己的集合.通常,如果您需要自己使用给定的数据集,请将其设置为集合.如果将它作为其他一组的一部分更好地构思,那么嵌入它会更好.