【问题标题】:Sequelize bull create with a common id based on previous inserted data根据先前插入的数据使用公共 id 对公牛创建进行续集
【发布时间】:2022-01-07 03:47:57
【问题描述】:

我正在尝试使用 sequelize 和 nodejs 将以下数据插入到我的数据库中

{
  "basicDetails": {
    "companyName": "demo",
    "email": "demo5@demo.com",
    "phone": "5019918819",
    "address": "manab",
    "pincode": "400078",
    "city": "Mumbai",
    "state": "Maharashtra"
  },
  "subOffices": [
    {
      "subofficename": "bpo",
      "location": "random"
    },
    {
      "subofficename": "fintech",
      "location": "worli"
    }
  ],
  "companyUsers": [
    {
      "userName": "Random user",
      "userEmail": "random@us.com",
      "userPhone": "0000000000"
    },
    {
      "userName": "Demo User",
      "userEmail": "demo@us.com",
      "userPhone": "1111111111"
    }
  ]
}

我基本上有 3 张桌子:-

  1. 客户(ID)
  2. 子办公室(foreignKey 是客户 ID)
  3. CompanyUsers(foreignKey 是客户端 ID)

基本详细信息将存储在客户端表中并使用该数据的 ID。我想在相应的表中插入分办事处和公司用户,其中外键是我通过将基本详细信息插入客户表中获得的 id

我能够将基本细节插入客户表并获取该数据的 id。我还想使用 sequelize 进行批量插入,包括我从客户端数据中获取的 id 作为它的外键。

router.post("/addClient", async function (req, res) {
  const basicdetails = req.body.basicDetails;
  console.log(basicdetails);
  const subofficesData = [...req.body.subOffices];
  const companyusers = [...req.body.companyUsers];
  console.log("suboffices: " + suboffices);
  subofficesData.forEach((item) => console.log(item));
  companyusers.forEach((item) => console.log(item));

  const data = await client.create({
    companyName: basicdetails.companyName,
    email: basicdetails.email,
    mobileNumber: basicdetails.phone,
    address: basicdetails.address,
    pincode: basicdetails.pincode,
    city: basicdetails.city,
    state: basicdetails.state,
  });

  console.log(data.id);

  const subofficesResult = await suboffices.bulkCreate(subofficesData, {
    clientId: data.id,
  });
  console.log(subofficesResult);

  //   console.log(req.body.suboffices);
});

【问题讨论】:

  • 从你的描述中不清楚你的问题是什么,请你把问题解释清楚一点
  • @RiggsFolly 我已经编辑了问题现在清楚了吗
  • 不是真的,你问的是什么问题
  • @RiggsFolly 我已经编辑了问题现在清楚了吗
  • 查看此线程中的第二个答案stackoverflow.com/questions/63922261/…

标签: javascript mysql node.js sequelize.js


【解决方案1】:

这看起来根本不像您想使用 bulkCreate 的场景。

考虑在你的 create 方法的 options 对象中使用 include 属性。

https://sequelize.org/master/manual/creating-with-associations.html

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-09-08
    • 2022-12-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-03-01
    • 1970-01-01
    相关资源
    最近更新 更多