Articles of sequelize.js

用sequelizejs急切地加载模型定义的关联实体

我有一个用SequelizeJS定义的多对多关系,如下所示: global.db.User.hasMany(global.db.Role, { as: 'UserRoles', joinTableName:'user_roles'}); global.db.Role.hasMany(global.db.User, { as: 'RoleUsers', joinTableName:'user_roles'}); 我需要总是有任何用户检索用户对象的angular色。 定义用户模型时,是否有某种方法可以定义这种types的事物,而不仅仅是调用find或find all?

在Sequelize.js中添加多个关联

我明白,Sequelize有一个模型函数,用于在hasMany关系中设置多个关联,比如user1.setFollowing() ,还有一个用于添加单个user1.addFollowing()的函数,如user1.addFollowing() 。 但后者不让你通过一个数组(我收到一个错误) – 是否有任何函数让你添加多个关联,如user1.addFollowings ?

混淆续集关联一对​​多和一对一单向

我有以下实体: 用户(姓名,电子邮件,密码) 目标(标题,说明) 照片(文件名,path,内容types) GoalPhoto(fk_goal,fk_photo) 用户有很多目标 – 它工作正常。 外键添加到目标表 用户有一张照片 – 不起作用。 目标有许多照片在连接表模型GoalPhoto – 不起作用。 照片与用户和目标没有任何关联,但用户和目标实体分别具有一对一和一对多的关系。 照片不属于任何型号。 当我把User.hasOne(照片)它创build照片表中的外键,但我只想在用户(fk_photo)一个外键。 当我把Goal.hasMany(照片,{as:'photos',joinTableModel:GoalPhoto,foreignKey:'fk_goal'})它创build照片表中的外键,但我想要目标和照片外键JoinTable。 我该如何解决?

Node.js整理数据库规范化

我正在尝试将PHP网站迁移到Node.js,现在我正在考虑使用Sequelize设置数据库。 大多数表格都设置好了,但是我很难弄清楚如何进行标准化。 例如我有1个数据库用户: ID Username Email Password 另一个名为Domains的表格: ID Domain RegisteredAt 现在我需要创build一个第三个表来链接到这两个表一起查找,如下所示: UserID DomainID 我试图从Sequelize文档设置OneToOne关联,但是这只是似乎在原来的两个表中创build一个额外的字段。 有人可以解释我该怎么做吗? 谢谢你的帮助

Sequelize updateAttributes在socket.on('disconnet')中不起作用

我想更新客户端从套接字断开的时间。 然而,下面的代码给我“没有方法”indexOf'“行”查找({其中:{room_id:roomId}})“。 有人知道为什么吗? 谢谢! var roomId; roomId = socket.on('updateStartTime', function(roomId) { //some code return roomId }); socket.on('disconnect', function() { var date = new Date(); Room.find({ where: { room_id: roomId } }).complete(function(err, room) { if (err) console.log(err); room.updateAttributes({ end_time: date }).success(function(room) { console.log("end_time: " + room.end_time); }); }); socket.broadcast.emit('updateChat', 'SERVER', socket.username + ' has disconnected…'); }); […]

Async.foreach迭代强制停止,直到第一次迭代执行

async.forEach(vsr.vehicles, function(vsr_vehicle, callback){ pjCustom.vehicleJson(vsr_vehicle, function(vehicleInitialize){ Vehicle.find({ where: { vehicleID: (vsr_vehicle.vehicleID).toString().trim() } }).success(function(vehicleFound){ if(vehicleFound){ //Code Logic is working fine. }else{ vehicleBuild.save().success(function(vehicleNew){ // To create new vehicle of updated vsr var vehicleBuild = Vehicle.build(vehicleInitialize) pj.log("Update vehicle ……………………….") temp.push(vehicleNew.vehicleID) }) } }) }) callback() },function(){ res.send(204) }) //vehicleJSON exports.vehicleJson = function(vsr_vehicle, callback){ pjCustom.getVehicle(vsr_vehicle, function(status, vehicleId){ if (status == […]

Sequelize hasOne将不允许多行共享相同的关系

我遇到了使用Postgres驱动程序的sails.js问题: "dependencies": { "sequelize": "^1.7.0", "pg": "^3.0.3" } 我有一个活动模型,与2个模型有一个hasOne关系,属于另一个: classMethods: { associate: function(models) { Activity.hasOne(models.Model2); Activity.hasOne(models.Model3); Activity.belongsTo(models.User); } } 我遇到的问题是我似乎无法创build共享相同的Model2或Model3行/实例的2个活动实例。 我宣布第一个: Activity.create({}).complete(function(err, activity) { if(err) throw err; activity.setUser(User_Instance_X) activity.setModel2(Model2_Instance_X); activity.setModel3(Model3_Instance_X); activity.save().complete(db_save_cb); } 如果我然后声明另一个,使用相同的Model2和Model3实例,但不同的用户,则第一行/实例不再包含对Model2&3的引用,只有最新的行/实例包含该引用。 这是令人费解的function? 这是我的缺乏理解或错误?

用Sequelize创build数据库索引

我使用SequelizeJS v1.7.6,我需要在模型中以某种方式定义字段上的索引,我不需要合成索引,所以没有任何复杂的。 我发现的是,如果该字段应该具有唯一索引,则只能设置选项。 id: type: DataTypes.INTEGER.UNSIGNED index: yes # something like that does not work 但无法find方式如何设置经典索引的某些属性或手动。 你有什么想法 ?

使用sequelize,你如何使用or运算符与where标准?

从以前的SO讨论中,我能够用两个条件更新多个续集实例。 任何人都可以解释如何使用逻辑OR运算符而不是AND运算符来修改sequelize .update方法吗? 以下是使用AND进行更新的两种情况的续集更新方法。 global.db.Task.update( {Desc: 'New Upate'}, //set attribute {cd: 'match', Desc: null} //where criteria ).success(function(affectedRows) { … }); 这将读取一个SQL语句如下: UPDATE "Task" SET "Desc"='New Update' WHERE "Cd"='match' AND "Desc" IS NULL

如何返回Sequelize中树节点的子节点数?

我有一个像这样定义的分层树数据结构: module.exports = function(sequelize, DataTypes) { var Category = sequelize.define('Category', { id: { type: DataTypes.STRING, primaryKey: true }, parent: DataTypes.STRING, text: DataTypes.STRING } ); Category.belongsTo(Category, { foreignKey: 'parent' }); return Category; }; 我有一个服务返回给定节点的子节点列表,如下所示: exports.categoryChildren = function(req, res) { var id = req.params.id; db.Category.findAll({ where: { parent: id }}).success(function(categories){ return res.jsonp(categories); }).error(function(err){ return res.render('error', { error: […]