我可以使用OR条件在一个查询中获取所有内容,例如:
SELECT DISNTICNT(ID), title, description
FROM posts
WHERE creatorID in (1,2,3...) OR hashtags IN ('{sport}','{technology}'...)
ORDER BY "createdAt" DESC
LIMIT 10, OFFSET 0;
但是很明显,从这个查询中,我不知道帖子是来自creatorID,在这个例子中,creator
我有一个实体
@Table({tableName: 'EducationEntity'})
export class EducationEntity extends Model<EducationEntity> {
}
那是什么,教育实体是一个模型
Thakns您正试图让一个类使用同一类的类型扩展模型。您需要定义一个不同的接口。@请用小例子解释一下好吗?谢谢
src/research/research.service.ts:165:51 - error TS2684: The '
查看Sequelize文档,我找到了如何指定我想要更新的字段,但我想指定我不想要更新的字段
诸如此类:
Model.update(,{excludeFields:['id']})
有什么方法可以做到这一点吗?也许这也适用于更新
Model.findAll({
attributes: { exclude: ['baz'] }
});
当我遇到这个问题时,我没有在sequelize docs中找到解决这个问题的方法,但我通过以下方式解决了它:
Model.findOne()
.then(i
我有一个关于如何通过关联检索正确信息的初学者问题。我有一个简单的设置
资产.belongsTo(产品)
产品.belongsTo(供应商)
基本上,资产>产品>供应商
我可以使用db.Asset.findAll({include:[{model:db.Product}]})轻松地包含产品,但我不确定如何通过产品模型包含Vendor.name。任何帮助都将不胜感激
--编辑--
这就是我现在得到的只有产品协会
{
"id"
我有一个叫做characters的表。每个字符都有一个名为“state”的枚举,可以是“sad”或“happy”。如何将新状态“混乱”添加到我的列中?我尝试了此迁移,但失败了:
migration.describeTable('characters').success(function (attributes) {
migration.changeColumn('characters', 'state',
{
type: DataTypes.ENU
对于定义如下的模型:
Team = sequelize.define 'team',
name: Sequelize.STRING
User = sequelize.define 'user',
name: Sequelize.STRING
foo: Sequelize.INTEGER
Team.hasMany User
User.belongsTo Team
如何获取包含foo等于42的用户的所有团队,而不在结果中包含用户,也不在结果中多次包含同一团队,即,如何生成以下查询
我想知道如何在Sequelize中查询关系。假设我有一个UserModel和一个IssueModel,它们彼此之间都有归属关系。我想要一个这样的查询:
SELECT
...,
(
EXISTS(
SELECT 1
FROM user_issues
WHERE user_issues.user_id = <some_id>
AND user_issue
我有一个场景,我试图从一个具有多对多关系的表中删除一条记录,以及连接两个表的连接(通过)表中匹配的recordId。我知道有set和get方法可以为一个表创建记录,然后通过表在中自动创建关系,但是有没有方法可以删除
以下是关系:
用户
User.belongsToMany(db.Organization, { through: 'organization_member', foreignKey: 'user_id'})
组织机构
Organization.belongsToMany(db.Us
我正在尝试编写Sequelize.js查询,以查找列值包含在输入字符串中的项
例如,如果我有一个表,其列的值为Apple、Banana、Orange,搜索词为Apple Pie,那么查询将返回Apple的行
这在SQL()中似乎是可能的,但我不确定如何使用Sequelize ORM编写此查询。请参阅此链接:和此链接:
这感觉应该很容易,但是我正在努力把它做好
长话短说,我想做以下工作,其中:值将对象数组提取为多个(…),(…),(…)-我想用替换或绑定来完成这项工作。同样,我假设我不应该在使用替换之外做这件事,因为我希望sequelize的安全性可以使我免于任何sql注入攻击
我错过了什么
sequelize.query(`
插入到页面视图中(
项目编号:,
来源:,
查看日期,
第![2]页,
信道分组,
独特的页面视图
)价值观:关于冲突的价值观没有任何作用;
`,{replacements:[{},{
我正在使用sequelize orm。我在他们的文档中找不到如何在使用原始查询时使用事务。我看到的只是模型定义的查询方法。但是对于原始查询,没有关于将事务对象用于该特定查询的位置的规范。
您可以通过以下方式传入事务:
const t = await sequelize.transaction();
sequelize.query('SELECT * FROM table;', { transaction: t })
有关定义事务的不同方法,请参阅。上面的链接对我没有帮助,但已经找到了解决方案
支持五种风格的DBMS。在我的项目中,我们有一个位于IBMDB2中的遗留数据库,它不在该列表中。存在一个由IBM发布的
有没有关于如何为Sequelize创建这样一种新方言的文档
鼓励吗
根据v4.0.0的最新版本,如果您使用五种指定方言以外的任何东西,它将抛出一个错误,您可以更改驱动程序,但不能更改方言。
1.所以你不能这么做
2.不鼓励这样做
var Dialect;
// Requiring the dialect in a switch-case to keep the
我正在建立一个社交网络,所以我的模型是帖子、用户和用户跟踪用户关系
var User = sequelize.define('user', {
username: Sequelize.DataTypes.STRING
})
var Post = sequelize.define('post', {
text: Sequelize.DataTypes.STRING,
userId: Sequelize.DataTypes.INTEGER
})
var Follow = seque
我一直通过sequelize在postgres db上使用feathersjs/nodejs。在我的数据库中,我有用户表和事件表。它们有两种关系:
events.belongsTo(models.users, {
foreignKey: {
name: 'creatorId',
allowNull: false
},
onDelete: 'CASCADE',
as: 'creator'
});
events.belongsToMany(models.users,
我想像这样更新列数量
db.Stock.update({
qty: Sequelize.col('Stock.qty') + element.qty
}, {
where: {
item_id: element.item_id
}
})
数量=数量+x
我的代码是这样的
db.Stock.update({
qty: Sequelize.
这是一个需求代码,dataJoin(像多条记录一样的对象数组)结果,具有json值。这些json值必须找到相关项。因此,用于语句,用于查找json值。使用userService函数收集json值并获取数据,然后将这些数据合并到父数据。它不起作用了。因为,在完成for循环语句之前,res.send(“…”)项已经执行,这是我的问题
请任何人引导我
谢谢
table1Obj
.findAll(
{
include: [
{
mo
假设我有以下模型:
AccessControl.init({
permission: {
type: DataTypes.STRING,
allowNull: false,
unique: 'uniquePermission'
},
}, {
sequelize,
modelName: 'AccessControl'
});
我有以下协会:
User.hasMany(AccessControl,{ onDelete: 'CASCADE', foreign
我的问题是:
我有3个模型:User、Tag、Channel=>每个模型都有多对多关系
在这里,我想让一个用户的通道ID与用户选择的标签一致(因此,数据库中的标签是该用户的)
在postgresql中,它可以工作:
SELECT channel\u id FROM public.channel\u has\u tag WHERE tag\u id in(选择“tags”。“id”作为“tags.id”从“user”作为“user”离开外部连接(“user\u has\u tag”作为“tags”
我想知道我实施应用程序/迁移的方式是否错误。在应用程序启动时,我在每个型号上运行MODEL\u NAME.sync()。这是为了创建不存在的表。问题是,如果要在干净的数据库上安装我的应用程序,迁移将失败,因为它检测到列等已经存在。我应该如何解决这个问题 我认为这是sequelize的一个问题,如果列已经存在,它应该在迁移中忽略addColumn。实际上,MODEL\u NAME.sync()最好完全避免。相反,最好使用umzug框架来运行迁移。这也允许更好的配置。
afterFind hook没有被调用
在原始select查询之后是否调用了其他钩子
对于更新/插入查询返回*?是否回答了您的问题?否。我使用Model.findAll()或Model.upsert/create函数。。。并希望在获取记录后调用afterFind或任何其他钩子。
在我们正在进行的项目中,我们使用Sequelize进行模式迁移。数据库中有一些表,它们存储了我们的代码所使用的一种元信息
举一个具体的例子,我们有一个名为Attributes的表,其中包含一个已知和有效属性的列表。另一方面,我们有一堆文件,它们正在解析字符串,并试图从中检索不同类型的属性。解析后,这些文件将验证检索到的属性是否确实存在(这不是必要的步骤,但由于我们的框架是如何工作的,因此很难禁用它)
问题是,当团队成员之一创建新的解析器文件并定义解析器正在解析的新属性类型时,他必须将该属性插入到
我怎样才能把音乐变成“音乐”
{
id: 4
name: "playlist 1"
created_at: "2015-04-21T21:43:07.000Z"
updated_at: "2015-04-23T20:44:50.000Z"
Music: [
{
id: 12
name: "Deorro - Five Hours (Static Video) [LE7ELS]"
video_id: "K_yBUfMGvzc"
我正在使用express.js在nodejs中创建一个应用程序,我需要连接Oracle db,我正在为此使用Sequelize ORM框架,我创建了模型并尝试访问db,它删除了现有表并创建了新表,我丢失了数据,如何停止删除表并使用Sequelize orm与现有表和数据同步?不要调用
sequelize.sync()
只直接连接到数据库,同步会删除数据库,我不建议使用同步进行自动数据库迁移,而是使用sequelize迁移进行系统数据库迁移
const sequelize = new Seque
它正在通过一个服务,但这对我的应用程序来说是不必要的。我可以用nestjs直接访问模型吗?当然,@InjectModel()注入一个提供程序,类似于FeatureService,因此您可以在控制器中执行任何操作。只需将FeatureService更改为@InjectModel(FeatureModel)FeatureModel:Model,它就可以正常工作。在控制器的构造函数中?是的。正如您通常在功能.module中使用构造函数(@InjectModel(FeatureModel)private
find返回一个项目
findOne还返回一项
但如果我查看文档,发现并不存在
然而,我有一些项目,我一直在使用just find
我想你可以互换使用。当我试图通过给它一个id而不是一个对象来破坏它时,我在引用方法as.findOne时出错。也许这是以前版本的Sequelize遗留下来的,我找不到任何好的老文档,所以这只是一个猜测
无论如何,您可能应该使用更具描述性的.findOne over.find或pick one并保持一致。findOne是首选方法,find在Sequelize v5中被
在我们构建MySQL数据库很久之后,我就开始使用Sequelize了。我们有两列,“created”和“modified”,它们存储创建记录的日期和修改记录的时间
“created”列的类型为“DATETIME”,默认值为“CURRENT_TIMESTAMP”。“modified”列的类型为“TIMESTAMP”,默认值为“ON UPDATE CURRENT_TIMESTAMP”。MySQL使用UTC存储日期和时间
在Sequelize内的模型中,我们设置了“timestamps:false”,
我是一个新的续集,每次我创建一个新的“骑手”时,我都会尝试将名字的第一个字母大写,所以它看起来在我的表格中是大写的。我没能做到:
这是我的模型:
const db = require("./db");
const Sequelize = require("sequelize");
//(w / WSL ranking, Last tournament won, Country, favorite wave, current board).
const Rider = db.define("ri
我希望通过全局钩子将一些低级日志添加到所有Sequelize操作中。大概是这样的:
db.addHook('beforeUpdate',(实例,选项)=>{
log.info({instance,options},`updateing${modelName}${instance.get('id')}`);
});
我没有弄清楚的是如何填充modelName,甚至是它是否可能(尽管我发现缺少信息表明这可能是不可能的)。有没有可能我还没找到钥匙
以下是记录的实例值:
实例:{
“id”:空,
所以我有两个表,一个是用户列表,另一个是相关帐户。例如,一个用户可能有两个帐户。此外,多个用户可能与重叠的帐户相关联
我有一个属于自己的东西,有很多,就像我过去做的那样
但是,当我尝试获取关联的帐户时,返回一个错误,说明找不到accounts.id
协会:
Accounts.belongsTo(Users,{foreignKey: 'uid'})
Users.hasMany(Accounts, {foreignKey: 'uid'})
uid是用户表上的主密钥。Accounts表上没有主键
型
我试图从数据库中获取记录
db.relations.findAll({where: {organisation: orgName}})
.then(found => {
console.log('Found relations by name: ', found[0].dataValues);
})
.catch(error => {
console.log('Error: ', erro
所以,newme是这样的:
const gamem = await gamemodes.findAll({attributes: ['name']});
const newme = await gamemodes.findAll({attributes: ['name']}, {raw: true });
console.log(newme)
const mapi = gamem.map(g => g.name).join('\n') || "No Game
假设我想查询内容要么像“好”要么像“坏”的帖子,那么我会这样做:
Post.findAll({
where:{
content: {
[Op.and]: {
[Op.like]: '%good%',
[Op.like]: '%bad%'
}
}
}
}
但是,由于该对象具有两个名为[Op.like]的属性,因此后者将替换上面的属性
因此,我发现
我希望查找记录使用如下运算符:field&16
node.js项目使用sequelize
CREATE TABLE`my_TABLE`(
`id`int(11)不为空,
`插槽'int(11)不为空,
`name`char(1)不为空,
主键(`id`)
)引擎=InnoDB;
在my_表中插入值
(1127,'a'),
(2,96,'b'),
(3,63,'c'),
(4,44,'c');
我想要models.MyTable.findAll({where:…})
从my_表中选择*插槽&16
如果数据库不存在,有没有办法让sequelize创建我要连接的数据库
我有一个原始MySQL实例,我得到了这个错误:
ER_BAD_DB_ERROR: Unknown database 'mytest'
我希望处理该错误,使用我提供的creds(或具有创建权限的其他create集),并运行create DATABASE mytest。我可能有一个合理的解决方案。我相信它可以写得更清楚
对于我使用Postgres的这个例子,MySQL的答案会略有不同。我大量借用了这个答案:
在database.
定义关联时,我不知道如何告诉sequelize,外键(以及“父”表中的主键,如果需要)的名称是什么
我使用的是一个多年前就存在的mssql(2008 r2)数据库,我无法更改该数据库中的任何内容
这是我的模型:
CuentasBancarias_sql = sequelize.define('cuentasBancarias_sql', {
id: { type: Sequelize.INTEGER, field: 'CuentaInterna', allowNull: false, a
我已经阅读了大量sequelize cli文档,似乎不知道如何将列添加到现有模型中。我有一个名为,models/team.js的模型,我想用sequelize model:create--name team--attributes role\u name:string向模型添加一个名为role\u name的列,但我收到一条要覆盖而不是修改的消息:
Loaded configuration file "config/config.json".
Using environment "develop
我的表中有一列将使用哈希模块对表上的自动递增主键(字符和整数)进行哈希运算。我已经尝试对哈希模式属性使用get和set方法来实现这一点,但从未设置该值
var Hashids = require('hashids');
var hashids = new Hashids('blog', 10);
var blogComment = sequelize.define('blog_comment', {
blogCommentId: {
type: DataTypes.IN
我需要在查询的特定值的getter和setter中使用特定函数,如下所示:
从表中选择AES_DECRYPT(列,UNHEX(SHA2('PASSWORD',512));
我如何使用sequelize实现这一点?此函数特定于MySQL
问候
我正在尝试设置角色和权限来处理api请求。我正在使用Feathers.js和Feathers sequelize来创建PostGres db
对于管理角色和权限,我使用casl.js:
集成Casl的大多数示例都是基于mongo/mongoose的。
之后我读了以下文章:
在提供的示例中,他们使用sequelize作用域,目前sequelize不支持带有参数的sequelize作用域(从我看到的情况来看)
长话短说,我正试图找到一种将sequelize与Casl集成的方法来管理资源权限
到目
我有一段代码分析了websocket接收到的大量数据,从一段时间以来发现MySQL DB(Heroku上的JawsDB)返回错误消息:'User'xxxxx'已超过'max_User_connections'资源(当前值:10)
我知道这是MySQL限制,但我不明白-为什么我的代码会在每个查询上创建新连接(同时定义了pooloptions)
我是如何理解的:在${proj}/node_modules/sequelize/lib/dialogs/mysql/connection manager.j
我有基于Sequelize的代码,在Node.js项目中运行良好。我将该代码移动到AWS Lambda处理程序中,并使用节点Lambda模块对其进行测试。现在似乎跳过了Sequelize代码。我不确定在Lambda完成之前承诺是否没有得到处理,或者我是否错过了其他东西。下面的代码跳过“在”console.log,如下面的输出所示
var models = require('./models');
exports.handler = function( event, context, call
当我在这个类上运行迁移时,我希望能够分配一个id和一个UUID。将id设置为主键,将UUID设置为默认值。但是,当我运行sequelize db:migrate命令时,我得到一个非常模糊的错误:
val.replace不是一个函数:
这是我的密码:
'use strict';
module.exports = (sequelize, Sequelize) => {
const projects = sequelize.define('projects',
{
id: {
我希望数据库中的用户有一个标记列表。我希望标签表有两列:
用户ID-用户ID
标签名称-标签
我目前已经尝试过让User.hasMany(标记,{primaryKey:true,foreginKey:'userId'})
但我最终在所有其他列的顶部都有一个“ID”列。我希望“UserID/TagName”是唯一的关联(意味着用户和标记只能有一个实例)最简单的选择是添加一个新的迁移,对UserID和标记有唯一的约束,如下所示
module.exports = {
up(queryInterfa
我用graphql制作了简单的board api系统
我使用sequelize(版本4)连接到数据库
[schema.graphql]
type Article {
article_no: Int!
subject: String!
content: String!
createdAt: String!
updatedAt: String!
comment: String
}
type Comment {
article_no: Int!
使用sequelize保存db记录时,我遇到了一个奇怪的错误。错误是:
Error: DatabaseError: null value in column 'id' violates not-null constraint
id字段是作为自动增量创建的serial,在save之前没有分配值。代码如下:
order = Order.build(d);
try {
await order.save();
} catch(e
提前为前面的长帖子道歉
我有一种鸡尾酒,和成分模型,它们通过belongtomany关联;并且可以通过动态表单进行更新。此表单允许您添加和删除输入字段,每个字段表示一个成分
在提供更新成分的代码之前,我想先说一下我的代码是有效的。。。在某种程度上。我对更有效地写作感兴趣;同时也修复了随机出现的错误
我不确定是什么触发了这个bug;但是这个bug会产生随机结果。有时一切正常,添加新行,正常更新编辑的行。但也有一些时候,这项新纪录会排在榜首。作为参考,有时屏幕截图中的新成分会首先出现在杜松子酒的顶
我有一个票证模型和一个评论模型。票证与注释模型有很多关系。我想按关键字搜索车票。关键字将与票证模型的主题属性和注释模型的主体属性相匹配
下面的代码不起作用:
var options = {
where: {
$or: [
{
subject: {
like: '%' + query + '%'
},
},
{
'Comment.body': {
like: '%
用户可以有许多标记对象。标记对象属于一个用户。标记有许多事务。事务属于一个标记。用户有许多事务。一个事务可以有多个用户
模型
关系
问题
我试图返回给定用户拥有的标记对象列表,以及该用户关联事务的标记对象列表。在纯SQL中:
select * from tag
left outer join transaction on tag."tagId" = transaction.tag_id
left outer join user_transaction on transaction.id =
我正在使用“feathers sequelize”将我的一些RESTful API映射到数据库表。
“feathers sequelize”支持一种非常灵活的方式来指定GET请求的“WHERE”条件。例如,我们可以有如下请求
curl -X 'GET' \
'http://localhost/users?name[%24like]=%25hello%25'
该框架将帮助我找到名称包含子字符串的用户hello
但是,我的一些数据库列没有索引,我不想让客户机使用这些列进行查询,因为这将导致全表
假设您对一个值有唯一的约束,并且默认值是由一个函数生成的,该函数生成一个4位数的随机散列。我需要它是唯一的和随机的。由于4是一个小数字,所以有时生成的值会重复。在这种情况下,我希望sequelize再试一次。我的问题是它会再试一次吗
如果不是,告诉sequelize自动为某些列生成默认值的最佳方法是什么?该列的长度为x位,是唯一的且随机的。您可以这样做:
funtion createRandom(value){
let randomNumber = generateRandomNumbe
上一页 1 2 3 4 5 6 ...
下一页 最后一页 共 15 页