Javascript 如何使用mongodb在对象内部迭代数组
我尝试使用mongodb迭代对象键值内的数组,但它不起作用。如何实现它 数据库代码Javascript 如何使用mongodb在对象内部迭代数组,javascript,mongodb,mongoose,aggregation-framework,Javascript,Mongodb,Mongoose,Aggregation Framework,我尝试使用mongodb迭代对象键值内的数组,但它不起作用。如何实现它 数据库代码 您可以使用下面的聚合 db.product.aggregate([ { "$lookup": { "from": "category", "localField": "id", "foreignField": "_id", "as": "ordersetails" }}, { "$project": { "product_name": 1, "pro
您可以使用下面的聚合
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()
如果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();
如果ordersdetails中有多条记录,则该命令无效。@RishabhGarg请检查
localField
和foreignField
。它的目标是另一个集合的\u id
,这意味着该记录是唯一的。希望你能得到它。@Fanpark是的,没错。错过了身份证。