Mongodb 如何从数组中检索子文档字段值
如何从mongodb中的以下文档中获取购物车中的每个productIDMongodb 如何从数组中检索子文档字段值,mongodb,mongodb-query,aggregation-framework,Mongodb,Mongodb Query,Aggregation Framework,如何从mongodb中的以下文档中获取购物车中的每个productID { "_id": ObjectId("572992d6fc8b7a5c613248f6"), "userId": "0001", "fname": "Ankur", "lname": "Vishnoi", "address1": "Palam", "city": "New Delhi", "state": "Delhi", "pin": 110077,
{
"_id": ObjectId("572992d6fc8b7a5c613248f6"),
"userId": "0001",
"fname": "Ankur",
"lname": "Vishnoi",
"address1": "Palam",
"city": "New Delhi",
"state": "Delhi",
"pin": 110077,
"cart": [
{
"productId": 8,
"cartQty": 1
},
{
"productId": 2,
"cartQty": 3
},
]
}
您可以使用Mongo聚合函数$unwind数组元素。然后应用$project来获取productId
db.coll.aggregate([
{$unwind : "$cart"},
{$project : { _id : 0, "productId" : "$cart.productId"}}
])
结果:
{ "productId" : 8 }
{ "productId" : 2 }
除非必须,否则应使用管道操作符对文档进行非标准化。最好的方法是使用操作符
db.carts.aggregate([
{“$project”:{
“产品ID”:{
“$map”:{
“输入”:“$cart”,
“as”:“crt”,
“在”:“$$crt.productId”
}
}
}}
])