1

我有一个这样的数据库

{
    "name": "Tom",
    "cars": [
        {
            "name": "Shirley",
            "kind": "Bugatti"
        },
        {
            "name": "Jessica",
            "kind": "Maserati"
        },      
    ]
}

我有这样的查询

db.people.findOne({"name: "Tom"});

我只想返回对象"name": "Jessica"

{
    "name": "Jessica",
    "kind": "Maserati"
}

我怎样才能做到这一点?

我试过

db.people.findOne({"name": "Tom"}, {"cars.name": 1});
db.people.findOne({"name": "Tom"}, {"cars.name.Jessica": 1});

我试图阻止返回整个东西然后对所有东西进行排序。

4

1 回答 1

1
db.people.findOne({"name": "Tom"}, {"cars": { $elemMatch : { "name": "Jessica"}}});

{
    "_id" : ObjectId("526453188257d12214ea287d"),
    "cars" : [
        {
            "name" : "Jessica",
            "kind" : "Maserati"
        }
    ]
}
于 2013-10-20T22:18:17.347 回答