在mongodb中查找嵌入文档?

时间:2013-04-19 08:15:51

标签: node.js mongodb

我的收藏是这样的

{
  "name":""
  "type":""
  "arr":[
   {
     "type":""
     "other field"
     ...
   },
  {
     "type":""
     "other field"
     ...
   }
}

我的病情是   输入参数是名称。 所以基于名称我必须获取文档,还有一个条件是数组外部和内部的类型应匹配.. 需要单独获取这些记录.. 如何实现这个

2 个答案:

答案 0 :(得分:0)

如果我理解正确,这就是你得到理想结果的方法

{name:"",type:"",arr.type:""}

您可以输入所需的值,它将返回所有匹配的记录。

答案 1 :(得分:0)

表现不佳,但只是工作(http://docs.mongodb.org/manual/reference/operator/where

db.SOME_COLLECTION.find({
  name:'SOME_VALUE', 
  $where: 
    function() {
      for(var i = 0; i < obj.arr.length; i++) {
        if(obj.arr[i].type==obj.type) {
          return obj
        }
      }
    }
  }
)

P.S。聚合框架已经解决了类比问题,但在这种情况下,imho只有$ where子句可用