jjzjj

sequelize

全部标签

javascript - Sequelize : update by column it's old value

我正在尝试通过此查询使用Sequelize更新一组数据Users.update({flag:'flag&~2'},{where:{id:{gt:2}}})生成的查询是UPDATE`users`SET`flag`='flag&~2'WHEREid>2但应该是UPDATE`users`SET`flag`=flag&~2WHEREid>2所以我的问题是如何根据旧值更新数据问候 最佳答案 您应该能够通过以下方式执行此操作:Users.update({flag:sequelize.literal('flag&~2')},{where:{id:

javascript - Sequelize 迁移执行顺序

我似乎无法在任何地方找到这个问题的答案。我了解Sequelize迁移和播种机的工作原理,但我没有找到任何地方说明它们是否按特定顺序执行。因此,如果我从一个数据库开始,进行一系列迁移,然后决定从原始起点初始化一个全新的数据库,它是否会以完全相同的顺序执行迁移。我正在使用sequelize-cli创建迁移,因此文件名确实以时间戳开头。 最佳答案 对于将来看到此内容的任何人,它会按照文件夹的默认排序顺序执行。因此,当您使用CLI创建迁移并附加时间戳时,它保证它将按照创建它们的顺序执行希望对你有帮助

javascript - Sequelize 更新不再起作用 : "Missing where attribute in the options parameter passed to update"

TheofficialAPIdocumentation建议像这样使用Model.update:vargid=...;varuid=...;varvalues={gid:gid};varwhere={uid:uid};myModel.update(values,where).then(function(){//updatecallback});但这给了我:“传递给更新的选项参数中缺少where属性”。文档还提到这种用法已被弃用。看到这个错误让我想,他们已经改变了它。我做错了什么? 最佳答案 显然,文档还没有更新。但是表的where行t

javascript - 如何在 Sequelize.js 中定义对象数组?

如何在Sequelize.js模型中定义对象数组字段?我需要这样的东西{"profiles":[{"profile_id":10,"profile_pictures":["pic1.jpg","pic2.jpg","pic3.jpg"],"profile_used_id":12},...//moreprofiles]}我检查了docs,但找不到相关的数据类型,我在这里遗漏了什么吗? 最佳答案 我已经成功地通过定义我的模型来模仿数组:varMyModel=sequelize.define('MyModel',{myArrayField

javascript - Sequelize 按日期分组,忽略小时/分钟/秒

嘿,所以我正在尝试使用Sequelize(用于postgreSQL的Node.jsORM)从数据库中查询,我正在尝试按日期范围分组,并计算该表中有多少项目。现在我的代码是Task.findAll({attributes:['createdAt'],group:'createdAt'})但如您所见,分组仅考虑确切的日期(包括秒数),因此分组实际上毫无意义,因为无论如何都不会有重叠的项目具有完全相同的秒数。所以我希望它只是基于日、年和月进行分组。我假设它必须是类似sequelize.fn(...)的东西 最佳答案 正如您所说,它已通过s

javascript - 在运行测试之前使用 sequelize 种子文件种子数据库

如何使用sequelizeseeder文件在我的测试文件(Jest)中执行rake样式命令?我正在尝试做与此相同的事情,但使用sequelize。describe('routes:movies',()=>{beforeEach(()=>{returnknex.migrate.rollback().then(()=>{returnknex.migrate.latest();}).then(()=>{returnknex.seed.run();});});afterEach(()=>{returnknex.migrate.rollback();});}); 最佳

javascript - 使用 Sequelize.js 的自定义验证错误

可以自定义错误Sequelize.ValidationError型号:varPaymentType=sequelize.define('payment_type',{id:{type:DataTypes.INTEGER(11),allowNull:false,primaryKey:true,autoIncrement:true,field:'id'},code:{type:DataTypes.STRING,allowNull:false,validate:{notEmpty:true},field:'code'},name:{type:DataTypes.STRING,allowNul

javascript - 从 upsert (insertOrUpdate) Sequelize Node.js 获取插入行的 id

我正在创建一个RESTAPI。我想实现一个独立的PUT操作,它可以创建或更新数据库中的特定资源。我正在使用node.js、postgreSQL和sequelize。问题是sequelizeupsert返回true或false取决于资源是更新还是创建。但如果资源已创建,我需要能够将唯一标识符(列ID)发送回客户端。我尝试过的一个解决方案是通过在sequelizefindOne查询的“where”属性中指定从客户端发送的每一列来尝试找到完全相同的资源。但如果客户端发送不在数据库中的其他列,它会抛出错误。在我的实现中不应该是这种情况。这个可以实现吗?最好没有一些性能开销。谢谢

javascript - Sequelize : multiple belongsTo and hasMany issue

我的架构由用户和评论组成。基本上,每个用户都可以对另一个用户发表评论。由于我需要从仅被评论的用户那里获得所有评论,因此我编写了以下关联:User.hasMany(Review,{as:'reviews',foreignKey:{name:'reviewee',allowNull:false}});Review.belongsTo(User,{as:'user',foreignKey:{name:'reviewee',allowNull:false}});Review.belongsTo(User,{as:'author',foreignKey:{name:'reviewer',allo

javascript - Node.js/Sequelize.js/Express.js - 如何插入多对多关联? (同步/异步?)

我有两个模型(个人、电子邮件),我正在尝试使用Sequelize命令插入到创建的“Individual_Email”表中。当Sequelize正在创建所需的表时,它在尝试向该表添加/获取/设置该表时返回以下错误:“对象[objectPromise]没有方法'addEmail'”。我错过了什么?Sequelize文档说,如果模型是User和Project,“这会将方法getUsers、setUsers、addUsers添加到Project,并将getProjects、setProjects和addProject添加到User。”这让我相信(查看promises)我可能误解了如何使用Nod