MongoDB按字段名称从数组中查找数据

时间:2016-04-28 16:48:15

标签: mongodb mongoexport

我有一个像下面提到的mongoDB记录 -

{  
    "d": { 
        "education": [ 
            { 
                "school": { "name": "one", "id": "1" } 
            }, 
            { 
                "school": { "name" : "two", "id" : "2" } 
            } 
        ] 
    } 
}

现在我正在运行一个mongo查询来获取我记录中的所有学校名称,就像这样 -

db.test.find({},{"d.education.0.school.name":"1"})

但结果不是我想要的,它是空的 -

{ 
    "_id": ObjectId("5722385b964f6cb39d49f875"), 
    "d" : { "education" : [ {  }, {  } ] } 
}

我希望得到这样的结果 -

{ 
    "_id": ObjectId("5087c96338aeb0538a832574"), 
    "d": { 
        "education": [ 
            { 
                "school": { "name" : "one" } 
            } 
        ] 
    } 
}

从学校阵列的第一个记录开始的学校名称。请帮忙!

1 个答案:

答案 0 :(得分:0)

试试这个:

db.test.aggregate([{"$project":
{"d.education.school.name":true}},
{$unwind:"$d.education.school"},
{"$limit":1}])