如何从数组中检索子文档字段值

时间:2016-05-05 03:19:39

标签: mongodb mongodb-query aggregation-framework

如何从mongodb中的以下文档中获取购物车中的每个productID。

{{ember-chart type="Bar" 
    data=solsGraph 
    width=500 height=350 
    options=opcionesGrafica 
    legend=true}}

2 个答案:

答案 0 :(得分:1)

您可以使用Mongo Aggregate函数来展开数组元素。然后应用$ project来获取productId。

db.coll.aggregate([
    {$unwind : "$cart"},
    {$project : { _id : 0, "productId" : "$cart.productId"}}
])

结果:

{ "productId" : 8 }
{ "productId" : 2 }

答案 1 :(得分:0)

除非必须,否则您应使用$unwind管道运算符对文档进行反规范化。执行此操作的最佳方法是使用$map运算符。

db.carts.aggregate([
    { "$project": { 
        "productId": { 
            "$map": { 
                "input": "$cart", 
                "as": "crt", 
                "in": "$$crt.productId" 
            } 
        } 
    }} 
])