在hasAndBelongsToMany关系中的节点中执行初始加载

时间:2018-10-15 20:27:33

标签: node.js mongodb loopbackjs has-and-belongs-to-many

如何在hasAndBelongsToMany关系中创建初始加载数据?

示例:

Model Product
{
idProduct,
Description
(..)
}

Model Order
{
idOrder,
Date
(...)
}

大张旗鼓的有:

PUT: /order/{id}/product/rel/{fk}
{
  "id": "string",
  "orderId": "string",
  "productId": "string"
}

但是我不知道如何使它成为我的节点启动脚本(我可以通过什么方法调用此方法)...

我知道如何插入订单,插入产品,但是我不知道如何在一个或多个订单中“链接”一个或多个产品。

我在其他链接中看到了"Order.Product.link({id1: val1, id2: val2})",但在节点上却不起作用...

1 个答案:

答案 0 :(得分:0)

要创建新链接,您需要首先获取源模型(订单)的实例,然后调用关系方法add以与目标模型(产品)建立关系。

const order = await Order.findById(orderId);
await order.products.add(productId);

如果要在创建新订单时添加产品:

const order = await Order.create({/* order data */});
await order.products.add(productId);

如果您尚未使用异步功能或Promises,则此处为基于回调的版本:

Order.findById(orderId, function(err, order) {
  if (err) // handle the error

  order.products.add(productId, function(err) {

    if (err) // handle the error
    // done
  });
});