求助,Sequelize的upsert写法问题
按照文档关于upsert的写法是:
upsert(values, [options]) -> Promise.<created>
创建或更新一行。如果匹配到主键或唯一约束键时会进行更新。
名称 | 类型 | 说明 | |
---|---|---|---|
values | Object | ||
[options] | Object | ||
[options.validate=true] | Boolean | 插入前进行验证 | |
[options.fields=Object.keys(this.attributes)] | Array | 要插入/更新字段。默认全部 | |
[options.transaction] | Transaction | 在事务中执行查询 |
尝试写了一段,查找数据,如果没有创建,如果有则更新。
model.upsert({
id: 2,
name: find.name
count: 1,
}, {
fields: { count: Sequelize.literal('`count` +1') },
});
执行总报错: nodejs.TypeError: fields[Symbol.iterator] is not a function
是我的语法错了么,求正确写法。
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
fields
的类型是Array
,表示第一个参数内的部分字段名(例fields
为['count']
的话,upsert
只添加/更新count
字段)