Tag: orm

如何在没有额外查询的情况下去除续集中的关联?

我有许多到exercise和muscle模型之间的联系。 我删除单个关联 models.Exercise.find({where: {id: exerciseId}}) .then(function(exercise){ exercise.removeMuscle(muscleId); res.sendStatus(200); }); ORM运行3个查询,其中2个类似 Executing (default): SELECT `Muscule`.`id`, `Muscule`.`title`, `Muscule`.`description`, `Muscule`.`video`, `Muscule`.`createdAt`, `Muscule`.`updatedAt`, `muscle_exercise`.`createdAt` AS `muscle_exercise.createdAt`, `muscle_exercise`.`updatedAt` AS `muscle_ exercise.updatedAt`, `muscle_exercise`.`MusculeId` AS `muscle_exercise.MusculeId`, `muscle_exercise`.`ExerciseId` AS `muscle_exercise.ExerciseId` FROM `Muscules` AS `Muscule` INNER JOIN `muscle_exercise` AS `muscle_exercise` ON `Muscule`.`id` = `muscle_exercise`.`MusculeId` AND `muscle_exercise`.`ExerciseId` = 11; Executing (default): SELECT `Muscule`.`id`, `Muscule`.`title`, `Muscule`.`description`, […]

Sequelize 4.3.2 n:m(多对多)关联:未处理的拒绝SequelizeEagerLoadingError

我有3个模型:用户,项目,UserProject: module.exports = function (sequelize, DataTypes) { var User = sequelize.define('User', { title: DataTypes.STRING, description: DataTypes.STRING }, { classMethods: { associate: function (models) { User.belongsToMany(models.Project, { through: 'UserProject', foreignKey: 'userId' }) } }, freezeTableName: true }) return User } module.exports = function (sequelize, DataTypes) { var Project = sequelize.define('Project', { title: DataTypes.STRING, description: DataTypes.STRING }, […]

如何使用node-orm2编写OR条件?

有没有可能做这样的事情? User.find({'$or': [{user_id: 1}, {user_id: 2}]}, function(err, items){ }

dynamic地定义并获取水线中的模型

我想知道在Waterline中是否有可能通过Node-ORM2中的名称来定义模型或获取模型。 定义: var Person = db.define("person", { name : String, surname : String, age : Number, // FLOAT male : Boolean, continent : [ "Europe", "America", "Asia", "Africa", "Australia", "Antartica" ], // ENUM type photo : Buffer, // BLOB/BINARY data : Object // JSON encoded }, { methods: { fullName: function () { return this.name […]

Sequelize.js插入具有一对多关系的模型

我有两个具有一对多关系的sequelize模型。 我们称之为业主和财产。 假设它们是使用sails-hook-sequelize这样定义的(简化)。 //Owner.js module.exports = { options: { tableName: 'owner' }, attributes: { id: { type: Sequelize.BIGINT, allowNull: false, primaryKey: true, autoIncrement: true }, name: { type: Sequelize.STRING(255) }, associations: function () { Owner.hasMany(Property, { foreignKey: { name: 'owner_id' } }); } } //Property.js module.exports = { options: { tableName: 'property' }, attributes: { […]

NodeJS具有复合主键和特定VARCHAR长度的MySQL ORM

我一直在寻找一个用于Node的MySQL ORM。 我研究了persist.js , sequelize和node-orm 。 不幸的是他们都不支持我需要的两个特性:1.支持复合主键(大多数只支持“id”字段作为主键)2.能够指定我的VARCHAR长度 我有一个数百万行使用VARCHAR(16)的表。 把它加到255会给数据库增加数百MB的浪费空间。 这张桌子也将继续增长,进一步造成浪费。 有没有其他的select,我失踪了?

Node.js => TypeError:Object 没有方法'save'

我是新的Node.js,我试图运行一种插入查询。 这是我的代码: exports.savetea = function(req, res){ var quantity = req.query.quantity; var Sequelize = require('sequelize'); var sequelize = new Sequelize('nodehmssm', 'root', 'root', {host: "localhost", port: 3306, dialect: 'mysql'}); var Tea = sequelize.import(__dirname + "/model/tea"); Tea.build({quantity: quantity, status: "active"}).save(); res.send("Tea added…"); }; 我的tea.js文件如下: module.exports = function(sequelize, DataTypes) { return sequelize.define("tea", { id : DataTypes.INTEGER, quantity : DataTypes.INTEGER, […]

如何在sails.js控制器中为列表/索引视图检索一对一关联?

刚开始使用sails.js – 我如何检索与以下模型的一对一关联作为示例? 我认为我有单一的观点照顾,但与列表视图挣扎。 单独控制器似乎是可能的,或者为了更多的灵活性使用服务,但是两种情况下的语法都是我的绊脚石…我一直没有定义或什么都没有 … user.js的 module.exports = { attributes: { displayName: { type: 'string', unique: true }, username: { type: 'string', required: true, unique: true }, email: { type: 'email', unique: true }, password: { type: 'string', minLength: 8 }, profile: function(callback) { Person .findByUserId(this.id) .done(function(err, profile) { callback(profile); }); }, // Override […]

如何在node.js网站中组织模型?

我刚刚开始尝试使用node.js构build网站,并且在组织项目模型时遇到问题。 我在互联网上find的所有真实世界的例子都使用了Mongoose。 这个库允许你以静态的方式定义你的模型。 所以你可以写这个: // models/foo.js module.exports = require('mongoose').model('Foo', …); // app.js mongoose.connect(…); // some_controller_1.js var Foo = require('./models/foo'); Foo.find(…); // some_controller_2.js var Foo = require('./models/foo'); Foo.find(…); 但是由于我不想使用MongoDB,我需要另一个ORM。 而我发现的所有其他ORM都不允许这样做。 你首先需要创build一个实例,然后只有你可以注册你的模型。 他们似乎也不允许访问注册模型列表。 所以我试着这样做: // models/user.js var registrations = []; module.exports = function(sequelize) { var result = null; registrations.forEach(function(elem) { if (elem.db == sequelize) result = elem.value; […]

NodeJS Sequelize – 多个所有权

在我的应用程序中,我有用户和联系人。 用户向其他用户发送ContactRequest。 ContactRequest有一个请求者和被请求者字段。 我不知道如何去做这件事。 我不想要一个用户,ContactRequests和ContactRequestsUsers表(如果我在用户和联系人请求上定义了hasMany或hasOne,那么这个表就会是一个sequelize)。 那么让我们先来定义一些模型 – var User = sequelize.define('User', { id: {type: seq.INTEGER, primaryKey: true, autoIncrement: true}, username: { type: sequelize.STRING(32) } }); var ContactRequest = sequelize.define('ContactRequest', { id: {type: seq.INTEGER, primaryKey: true, autoIncrement: true} }); 不知道我应该做什么协会。 似乎我应该可以通过多种方式来做到这一点(理论上),但是我无法得到我尝试工作的任何方式。 // User Has Many? User.hasMany(ContactRequest, {as: 'Requester', foreignKey: 'requester'}); User.hasMany(ContactRequest, {as: 'Requestee', foreignKey: 'requestee'}); // […]