MongoDb嵌套数组检索

时间:2014-07-18 09:31:43

标签: node.js mongodb mongoose

我正在使用mongodb 2.6 我的架构

{
  list:[
     { Sno:1,
       sublist:[
             {
                subid:"1"
                dats:"result"
             },
             {
                subid:"2"
                dats:"result"
             }
             ]
     },
     { Sno:2,
       sublist:[
             {
                subid:"3"
                dats:"result"
             },
             {
                subid:"4"
                dats:"result"
             }
             ]
     }
    ]
}

db.test.find({“list.sublist.subid”:2});

我想只返回像这样的匹配数据

我不知道如何使用mapreduce来解决这个问题

{ 
  sublist:[
         {
            subid:"1"
            dats:"result"
          }
         ]
}

1 个答案:

答案 0 :(得分:0)

您需要使用投影http://docs.mongodb.org/manual/tutorial/project-fields-from-query-results/
在您的情况下,请尝试使用$elemMatchhttp://docs.mongodb.org/manual/reference/operator/projection/elemMatch/#proj._S_elemMatch

db.test.find( {},
             { sublist: { $elemMatch: { subid: "1" } } } )