MongoDB在一个对象数组中检索和更新数组中的对象

时间:2014-12-10 22:16:22

标签: node.js mongodb multidimensional-array

我发现很多关于访问数组中的数组和数组中的对象的问题,但是我找不到任何关于此的内容。 我正在使用NodeJS和MongoDb,这是我正在使用的文档“航空公司”的一个例子。我正在尝试检索和编辑捕获对象数组中的飞行对象。

{
    "_id": "548653018d49c56c1fc11425",
    "name": "British Airways",
    "icao": "BAW",
    "captures": [{
        "startDate": 1417910400,
        "endDate": 1417996800,
        "flights": [{
            "ident": "BAW7411",
            "departuretime": 1417910400             
        },
        {
            "ident": "BAW7411",             
            "departuretime": 1417910400             
        }]
    }]
}

如果我想检索“ident”值为“BAW7411”且“出发时间”值为“1417910400”的航班对象,我的查询应该是什么样的?我尝试过以下几种变体:

db.collection('airlines', {safe:true}, function(err, collection) {
    collection.find({"captures": {
            $elemMatch: {
                "flights" : {
                    $elemMatch: {
                        "ident": "BAW7411",
                        "departuretime": "1417910400"
                    }
                }                       
            }
        }
    }, function(result, response){  
        printJSON(result);
    }); 
}); 

0 个答案:

没有答案