如何访问嵌套的mongodb对象中的值?

时间:2015-05-13 15:04:11

标签: javascript mongodb object

我有一个像这样的公司mongodb结构:

{ "companyName" : "SomeCompany",


"Products" : [
        {
            "productId" : "e3rQACssGkfp9zsue",
            "productCode" : "271102502",
            "memberPrice" : "200",
        },
        {
            "productId" : "e3rQACssGkfp9zsue",
            "productCode" : "271102502",
            "memberPrice" : "500",
        },
    ]
}

每个公司都有一个名为Products的嵌套对象,它有自己的属性。如何遍历对象以从产品中打印出memberPrice?我正在尝试做类似的事情:

console.log(Company.Products.memberPrice)

返回undefined ...

1 个答案:

答案 0 :(得分:2)

使用数组的forEach()方法迭代元素的属性:

var obj = { 
    "companyName" : "SomeCompany",
    "Products" : [
        {
            "productId" : "e3rQACssGkfp9zsue",
            "productCode" : "271102502",
            "memberPrice" : "200",
        },
        {
            "productId" : "e3rQACssGkfp9zsue",
            "productCode" : "271102502",
            "memberPrice" : "500",
        },
    ]
};

obj.Products.forEach(function(product){
    console.log(product.memberPrice); // 200, 500
})

- 更新 -

如果你想使用find()光标的forEach()方法迭代mongo shell中的对象,你可以考虑以下(感谢@Michael):

db.collection.find().forEach(function(doc){
    doc.Products.forEach(function(p){ 
        print(p.memberPrice);
    });
});