Tag: sequelize.js

在find(1.6)上获取关联

sequelize 1.6在更新日志中有以下内容: [FEATURE]为find和findAll添加了关联预取 问题是如何? 我定义了以下模型: var self = { Medium: client.define("Medium", { name: Sequelize.STRING, description: Sequelize.TEXT }, User: client.define("User", { firstName: Sequelize.STRING, lastName: Sequelize.STRING, email: Sequelize.STRING, aboutArt: Sequelize.TEXT, bio: Sequelize.TEXT, password: Sequelize.STRING, description: Sequelize.TEXT } }; self.User.hasMany(self.Medium, { as: 'Media' }); self.Medium.hasMany(self.User); for(var key in self){ var model = self[key]; model.sync(); } 后来当我拿这样的用户: User.find(id) .success(function(record) […]

什么在Sequelize“configuration文件”?

我刚开始使用Node.js中的Sequelize,发现文档真的很缺乏。 我有一个“数据库”模块,我通过Sequelize连接到数据库,并从configuration文件中读取./config.json相对于我的项目根目录的configuration文件。 这是一个嵌套的configuration,不太可能像Sequelize希望CLI的configuration文件那样构造。 现在我正在尝试使用迁移和文档引用“configuration文件”。 我知道我可以设置该configuration文件的path,但是我把它放在哪里? 它没有logging在任何地方(我见过)。

如何通过NodeJS Sequelize中的查询来统计组

在Rails中,我可以执行一个简单的ORM查询模型的喜欢数量: @records = Model .select( 'model.*' ) .select( 'count(likes.*) as likes_count' ) .joins( 'LEFT JOIN likes ON model.id = likes.model_id' ) .group( 'model.id' ) 这会生成查询: SELECT models.*, count(likes.*) as likes_count FROM "models" JOIN likes ON models.id = likes.model_id GROUP BY models.id 在Node Sequelize中,任何类似的尝试都会失败: return Model.findAll({ group: [ '"Model".id' ], attributes: ['id', [Sequelize.fn('count', Sequelize.col('"Likes".id')), 'likes_count']], include: […]

是否有可能通过关联表中的属性过滤查询与sequ​​elize?

我想通过连接表的属性过滤我的查询 我有2个城市和类别,我通过第三个表CityCategory联系。 这个想法是当CityCategory得到与城市相关的类别。 year是一个特定的整数。 这是我如何指定的协会: module.exports = function(sequelize, DataTypes) { var CityCategory = sequelize.define('CityCategory', { year: { type: DataTypes.INTEGER, allowNull: false, validate: { notNull: true } } }, { indexes: [{ unique: true, fields: ['CityId', 'CategoryId', 'year'] }] }); return CityCategory; }; City.belongsToMany(models.Category, { through: { model: models.CityCategory } }); Category.belongsToMany(models.City, { through: { model: […]

在sequelize中检查mysql连接

我有一个非常简单的程序,我创build一个Sequelize实例,然后我执行一个MySQL数据库的原始查询。 这种情况是,当MySql启动并运行没有问题,我可以执行查询没有问题。 但是,当MySql没有运行,那么查询不会发出任何错误,直到查询超时已经达到,然后它发出一个ETIMEOUT错误。 但那不是真的发生了什么事情。 我希望查询发出ENOTFOUND错误或类似的东西,如果mysql不运行,所以我可以pipe理错误,并执行不同的操作,如果Mysql已经closures或Mysql非常繁忙,并有一个非常大的响应时间。 我要做些什么来检查Mysql是否启动并运行,而不必等待超时exception。 sequelize = new Sequelize(db_name, db_user, db_pass, opts); sequelize.query('SELECT * FROM some_table').success(function(result) { console.log(result); }).error(function(err) { console.log(err); });

Sequelize支持插入重复密钥更新?

有没有一个模型或实例方法将执行插入或更新,取决于是否存在logging? 最好使用MySQL的“INSERT ON DUPLICATE KEY UPDATE”语法?

基于包含在Sequelize中的数据进行查询

我有一个自我关联的人的桌子,所以人们可以有父母/孩子/表亲/等。 const People = sequelize.define('People', { gender: Sequelize.STRING, name: Sequelize.STRING, age: Sequelize.INTEGER }) const Relationships = sequelize.define('Relationships') Items.belongsToMany(Items, { through: Relationships, as: 'relationships' }) 我希望能够以两种方式select数据: 1.select一个21岁的人的所有关系 // Returns all of johns relatives who are 21 return People.findOne({ where: { name: 'John' }, include: [{ required: false, model: Items, as: 'relationships', where: { age: 21 } […]

Sequelize REST API生成器

我正在开发一个Nodejs应用程序,我的数据库是Postgres,而且我使用Sequelize作为我的ORM,因为它对迁移有很好的支持。 我正在寻找一个基于我定义的模式的良好的REST API生成器。 我面临两个主要障碍,它们是生成器在创build关联API路由和缺乏ACL支持方面做得不好。 在关联的前面,我的模式有多个层次的关联,例如.. Student.hasMany(Courses); Courses.hasMany(Subjects); 所以理想情况下生成的REST API应该是这样的 /student/:student_id/course/:course_id/subject/:subjectId 我发现有几个项目正在这样做,但不完整。 https://github.com/sequelize/sequelize-restful – 很好,但没有ACL支持 https://www.npmjs.org/package/restizr – 处于alpha阶段,不会生成关联的API路由。 有没有支持这个模块?

MySQL查询10表(Sequelize或原始查询)

为了返回下面的JSON示例,我们需要查询10个表,同时查找两个表之间的值。 我的SQL知识是有限的,所以我们在这里寻求帮助。 JSON: { project: 1, name: "BluePrint1", description: "BluePrint 1 Description", listWorkPackages: [ { id: 1, name: "WorkPackage 1 Name", description: "WorkPackage 1 Description", type: "WorkPackage Type", department: "WorkPackage Department", status: "Workpackage work status" }, { id: 2, name: "WorkPackage 2 Name", description: "WorkPackage 2 Description", type: "WorkPackage Type", department: "WorkPackage Department", status: "Workpackage […]

Sequelize:错误:错误:Table 1没有关联到Table 2

我正在尝试使用sequelize创build以下关联,但我不断收到以下错误“错误:错误:客户没有关联到订单!”。 根据我在文档中find的内容,我有双向关联。 我对这个问题可能是困惑的,因为当我查看数据库表时,我可以看到外键。 对于这个例子,我试图拉取与特定订单相关的订单和客户。 从技术上讲,我可以做三个分离数据库拉,但这似乎效率不高,而不是联接。 'use strict'; module.exports = function(sequelize, DataTypes) { var user = sequelize.define('user', { username: DataTypes.STRING(30), //remove password: DataTypes.STRING(255), emailaddress: DataTypes.STRING(255), firstname: DataTypes.STRING(30), middlename: DataTypes.STRING(30), //remove lastname: DataTypes.STRING(30), approve: DataTypes.BOOLEAN, roles: DataTypes.STRING(50), isactive: DataTypes.BOOLEAN }, { classMethods: { associate: function(models) { // associations can be defined here this.hasMany(models.order); } } }); user.hook('afterCreate', […]