【发布时间】:2019-11-03 06:08:09
【问题描述】:
我尝试使用 mongodb 迭代对象键值内的数组。但它不起作用。如何实现它。
数据库代码
【问题讨论】:
标签: javascript mongodb mongoose aggregation-framework
我尝试使用 mongodb 迭代对象键值内的数组。但它不起作用。如何实现它。
数据库代码
【问题讨论】:
标签: javascript mongodb mongoose aggregation-framework
你可以使用下面的聚合
db.product.aggregate([
{ "$lookup": {
"from": "category",
"localField": "id",
"foreignField": "_id",
"as": "ordersetails"
}},
{ "$project": {
"product_name": 1,
"product_image": { "$arrayElemAt": ["$product_image", 0] },
"ordersetails": { "$arrayElemAt": ["$ordersetails.name", 0] }
}}
]).toArray()
【讨论】:
localField 和foreignField。它针对另一个集合的_id,这意味着该记录是唯一的。希望你能得到它。
如果您在 orderdetails 数组中有多个对象,则可以使用以下查询:
db.product.aggregate([
{
$lookup: {
from: "category",
localField: "category_id",
foreignField: "id",
as: "ordersetails"
}
},
{
$project: {
product_name: 1,
product_image: { $arrayElemAt: ["$image", 0] },
ordersetails: 1
}
},
{
$unwind: "ordersetails"
},
{
$project: {
product_name: 1,
product_image: 1,
ordersetails: "$ordersetails.name"}
}
},
]).toArray();
【讨论】: