最新消息: 电脑我帮您提供丰富的电脑知识,编程学习,软件下载,win7系统下载。

如何在sequelizejs中创建具有关联的模型实例?

IT培训 admin 11浏览 0评论

如何在sequelizejs中创建具有关联的模型实例?

我想从原始的json数据中创建与其关联的持久模型

var data = {
    id: 77
    name: "Fred"

    parent_id: 887
    parent: {
       id: 887,
       name: "Ted"  

       things: [
          { id:991, name: "some", parent_id: 887 },
          { id:992, name: "another", parent_id: 887 },
          { id:993, name: "cu", parent_id: 887 }
       ]
    }


}

我简化了数据(我在模型中有很多关联,在关联的子模型中有一些关联)

我尝试使用Model.create(数据,选项)与options.include:[SubModel],但它不起作用。它只在主模型中创建数据库行并忽略SubModel

回答如下:据我所知,基于现有数据创建模型实例的唯一方法是使用build函数。但是使用相关的模型实例创建模型实例也有些棘手。

所以解决方案(基于您的JSON数据)更像

const thingsData = [ { id:991, name: "some", parent_id: 887 }, { id:992, name: "another", parent_id: 887 }, { id:993, name: "cu", parent_id: 887 } ] const things = ThingsModel.build(thingsData) // this will be an array of ThingsModel instance const parentData = { id: 887, name: "Ted" } const parent = ParentModel.build(parentData) // manually injecting the things instances parent.dataValues.things = things const personData = { id: 77, name: "Fred", parent_id: 887 } const person = PersonModel.build(data) person.dataValues.parent = parent

如何在sequelizejs中创建具有关联的模型实例?

我想从原始的json数据中创建与其关联的持久模型

var data = {
    id: 77
    name: "Fred"

    parent_id: 887
    parent: {
       id: 887,
       name: "Ted"  

       things: [
          { id:991, name: "some", parent_id: 887 },
          { id:992, name: "another", parent_id: 887 },
          { id:993, name: "cu", parent_id: 887 }
       ]
    }


}

我简化了数据(我在模型中有很多关联,在关联的子模型中有一些关联)

我尝试使用Model.create(数据,选项)与options.include:[SubModel],但它不起作用。它只在主模型中创建数据库行并忽略SubModel

回答如下:据我所知,基于现有数据创建模型实例的唯一方法是使用build函数。但是使用相关的模型实例创建模型实例也有些棘手。

所以解决方案(基于您的JSON数据)更像

const thingsData = [ { id:991, name: "some", parent_id: 887 }, { id:992, name: "another", parent_id: 887 }, { id:993, name: "cu", parent_id: 887 } ] const things = ThingsModel.build(thingsData) // this will be an array of ThingsModel instance const parentData = { id: 887, name: "Ted" } const parent = ParentModel.build(parentData) // manually injecting the things instances parent.dataValues.things = things const personData = { id: 77, name: "Fred", parent_id: 887 } const person = PersonModel.build(data) person.dataValues.parent = parent

发布评论

评论列表 (0)

  1. 暂无评论