【问题标题】:How to map two collections in mongodb using node js [duplicate]如何使用节点js在mongodb中映射两个集合[重复]
【发布时间】:2019-10-21 13:32:39
【问题描述】:

我怀疑如何使用 mongoclient 在 mongodb 中映射两个集合。我试过了,但它不起作用。如何解决它

group_promotion 收藏

{ 
    "_id" : ObjectId("5cf7679a0b0bed2e7483b998"), 
    "group_name" : "Latest", 
    "products" : [ObjectId("5cecc161e8c1e73478956333"),ObjectId("5cecc161e8c1e73478956334")]  
}

产品系列

{ 
    "_id" : ObjectId("5cecc161e8c1e73478956333"), 
    "product_name" : "bourbon"
},
{ 
    "_id" : ObjectId("5cecc161e8c1e73478956334"), 
    "product_name" : "bour"
}

预期输出:

{   
    "_id" : ObjectId("5cf7679a0b0bed2e7483b998"),   
    "group_name" : "Latest",   
    "products" : [{   
    "_id" : ObjectId("5cecc161e8c1e73478956333"),   
    "product_name" : "bourbon"  
    },{
   "_id" : ObjectId("5cecc161e8c1e73478956334"),   
    "product_name" : "bour"  
   }]    
}  

【问题讨论】:

    标签: node.js mongodb


    【解决方案1】:

    您可以直接在products 数组上运行$lookup 以获得预期结果:

    db.group_promotion.aggregate([
        {
            $lookup: {
                from: "product",
                localField: "products",
                foreignField: "_id",
                as: "products"
            }
        }
    ])
    

    这将从数组中获取products,在products集合中找到对应的文档,并覆盖group_production中现有的products数组

    【讨论】:

    • @micki 但我对这种情况还有一个疑问,请您看看团体促销合集和产品合集。
    • @HariSmith 你打开了另一个问题吗?
    • @micki 不,我已经改变了我的问题,你可以看看团体促销集合和产品集合这个场景如何实现映射两个集合
    • @micki 对不起,我编辑数据有误。我会更正和更新它。你能告诉我这个场景如何实现它。
    • @micki 感谢您的解决方案,它工作正常。
    猜你喜欢
    • 2015-10-07
    • 2019-08-03
    • 2011-12-12
    • 1970-01-01
    • 2021-03-04
    • 2020-07-21
    • 1970-01-01
    • 1970-01-01
    • 2019-04-15
    相关资源
    最近更新 更多