如何使用节点js映射mongodb中的两个集合

时间:2019-06-06 03:48:48

标签: node.js mongodb

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

group_promotion 集合

PendingIntent launchIntent = notif.getNotification().contentIntent;

   if (launchIntent != null) {
       try {
          launchIntent.send();
       } catch (PendingIntent.CanceledException e) {
          e.printStackTrace();
       }
  }

产品集合

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

预期输出:

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

1 个答案:

答案 0 :(得分:2)

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

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

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