我已经试着解释了一段时间了
我有一个这样的续集模型:
return sequelize
.define('Post',
{
title: {type : DataTypes.STRING, allowNull: false, unique: false},
subtitle: {type : DataTypes.STRING, allowNull: true},
body: {type : DataTypes.STRING, al
我有两个模型:userAuth和userFollow,我在同步之前将它们关联起来。
关联是userFollow有两个外键引用用户。
我没有使用别名,但使用时:
userAuth.findOne({
where:{
id: "someid"
},
include: [{
model: userFollow
}],
logging: false
})
它抛出的错误
我正在创建一个食谱数据库(通常称为烹饪书),在这里,我需要在配料和食谱之间建立多对多的关系,并且我正在结合使用
当一种成分被添加到配方中时,我需要声明进入配方的该成分的正确数量
我已声明(简化示例)
我的问题是,当我的一个REST端点返回数据时,数据是如何返回的
router.get('/recipes', function(req, res) {
Recipe.findAll({
include: [{
model: Ingredient,
每次执行下面的代码时,我都会遇到这个错误,我似乎无法理解它
未处理的拒绝类型错误:val.replace不是函数
在Object.SqlString.escape
您正在创建产品之前添加产品,因为这样做是一种承诺
User.create({title: 'user'})
.then(user => {
Project.create({title: 'ISD Corp'}).then(project => {
user.addProject({project}
我们正在为流量激增做准备,但这个问题也是一个普通问题:
知道您可以设置Sequelize以使用RDS数据库集群(在我们的示例中为:Aurora),如下所示:
const master={rdsClusterWriterEndpoint、用户名、密码、端口、数据库}
常量副本={rdsClusterReaderEndpoint、用户名、密码、端口、数据库}
const Sequelize=require('Sequelize')
const sequelize=新的sequelize(null,n
我在看续集纪录片。在本节的底部,我想知道sequelize变量的用途是什么?我能把它拿走吗
{
sequelize,
modelName: 'foo'
}
这里sequelize只是sequelize连接的一个实例
sequelize的init方法需要两个对象作为参数,如您所见
Foo.init(
{
title: Sequelize.STRING,
description: Sequelize.TEXT, //first argument
deadline: Seq
我试图创建WHERE条件,其中包括“person.name”列或“person->associates->friends.username”列之间的OR关系。在include(Friends模型)中嵌入where条件会创建一个我不需要的AND关系
为了简单起见,举一个例子:
Person.findAll({
where: {
$or: [
{
name: 'John'
},
{
'$associates.friends.userName$':
我希望得到一些关于如何修复数据的建议(如果数据不正常的话)。当我对用户模型进行fetchAll调用时,得到的数据类型是
[
user {
dataValues: {
id: 4,
email: 'emais44@email.com',
createdAt: '2020-08-05',
updatedAt: '2020-08-05'
},
_previousDataValues: {
id: 4,
下面是sequelize(6.3.5)中的一个查询,模型为Artwork连接Artimage:
const { Artwork, validateArtwork} = require('../models/artwork');
const { Artimage, validateArtimage} = require('../models/artimage');
artworks = await Artwork.findAll({
where :
Sequelize允许用户在模型上定义可重用查询。您可以定义一个defaultScope,以及命名的作用域。我为find、update和findAll工作,但不是为
从文档中:
通过调用模型定义上的.scope,传递
一个或多个作用域的名称.scope返回一个功能完整的
使用所有常规方法建模实例:.findAll,.update,
计数,销毁等
是否可以将作用域应用于create方法,以便返回的实例仅限于某些属性?我也想知道。我也想知道。
我有三张桌子:(学生、选修课、学生选修课)
{student\u id,optional\u id,subject\u id}:制作主键,
{student\u id,optional\u id,preference\u No}:应该是唯一的,
学生选修课
这里的student_选修是选修课和学生之间的关系表。
我们应该如何在sequelize中实现这一点?您的目标是在文档中描述的“belongtomany”,您的目标是在文档中描述的“belongtomany”
student:
id,
nam
如何在后续查询中编写此查询:
select COUNT(*)
from r5.users
WHERE
DATE_FORMAT(createdAt,'%Y%c%d')=DATE_FORMAT(current_date(),'%Y%c%d')
你可以这样做
Model.users.count({
where: Model.Sequelize.where(
Model.Sequelize.fn('DATE_FORMAT',Model.Sequelize.col('create
我在Sequelize中有两个相互关联的表,我想数一数下面的表
作业表列:“id”、“名称”
worker表colmuns:'id','name','job\u id'
假设我们现在有5份工作,并且有很多员工与工作id相关
我想显示作业的“id”、“姓名”,并计算有多少工人具有相同的作业id
示例:{id:1,姓名:工程师,计数:6};这意味着在worker的表6中,worker的job_id=1
我的问题是这样的:
Jobs.findAll({
attribute:['id', 'name']
我将feathers与sequelize.js一起用于我的后端
我有两个有关联的模型
lines.model.js
const lines = sequelizeClient.define(
"lines",
{
line_number: {
type: DataTypes.STRING,
allowNull: false,
},
},
{
timestamps: false,
我有一个postgres数据库,我正在使用Sequelize。从表车辆和预订中,我试图在给定开始日期和结束日期的情况下获得所有可用车辆
如果我使用以下方法搜索具有给定日期的预订:
Bookings.findAll({
where: {
[Op.or]: [
{ dateOut : { [Op.gt]: req.body.startDate} },
{ dateIn : { [Op.lt]: req.body.startDat
在我的多对多表中,我有一个type列和Foo模型,它在几个别名下引用了Bar
include仅在required属性设置为true时才能正常工作。获取Foo和一些相关的Bars时,我只收到一个子集
我在下面添加了一个可以执行的示例来演示这个问题
const{Sequelize,DataTypes}=require('Sequelize'))
const sequelize=new sequelize('sqlite::memory:'{
定义:{时间戳:false}
})
//定义相互关联的模型
我在sequelize模型中找不到问题。当我批量更新我的用户种子时,我得到一个不同的pwd集,因此无法登录。当我将db条目更新为正确的pwd时,它显然是有效的。似乎有什么问题,可能是批量更新挂钩或其他什么?这很奇怪
'use strict';
var crypto = require('crypto');
var validatePresenceOf = function(value) {
return value && value.length;
};
module.
这里给我的错误是没有定义模型。但是模型已经定义。如果您想模拟sequelize模型进行单元测试,最好的方法是使用。编写答案时的版本为0.10.2
以下是您如何使用它的示例:
您想验证所创建的模型,还是想模拟此模型进行某种单元测试?是的,我想模拟此模型进行单元测试。我建议您改为使用来模拟数据库模型Hanks buddy,它可以工作!完美的我留下了这个问题的答案。虽然默认示例有一个user模型,但您可以轻松地将其替换为您计划测试的player模型。
const Sequelize = require
我已经编写了Sequelize的以下片段:
return context.model.siteStaff.findAll({
where: Sequelize.where(
Sequelize.fn('date', Sequelize.col('createdAt')), {
[Op.eq]: moment(obj.date).toISOString()
})
});
Sequelize将此转换为:
SELECT "id",
查询当天的数据。
例子:
select*from table where to_days(createdAt)=to_days(now())
如何在sequelizejs中使用。您只需要sequelize.where和sequelize.literal
给你:
model.findAll({
where : sequelize.where( sequelize.literal('to_days(createdAt)') , sequelize.literal('to_days(now()
我有一个函数,它必须返回带有域活动的配置
async function getConfig(configId, country) {
return await db.config.findOne({
where: { id: configId },
include: [
{
model: db.domain,
attributes: ['id', 'domain'],
我有以下型号:
sequelize.define("User", {
id: {
type: DataTypes.INTEGER(11),
autoIncrement: true,
primaryKey: true
},
email: {
type: DataTypes.STRING(255),
allowNull: false,
unique: true,
},
我有四种型号:
Category
Video
VideoCategory
VideoSchedule
通过这些关系:
Category.belongtomany(视频,{通过:VideoCategory})
Video.belongtomany(类别,{通过:VideoCategory})
Video.hasOne(VideoSchedule)
VideoSchedule.belongsTo(视频)
我想检索当前计划视频的类别列表。我非常接近,但是Sequelize一直给我through表中
为什么sequelizefindAll返回的对象以及类似的对象不能像普通对象一样修改?我检查了它们是否已冻结或锁定,但Object.isfreezed()返回false。它是否使用getter而不是实际属性(如何检查?)
到目前为止,我修改结果的唯一选择是执行JSON.parse(JSON.strigify(result)),这是可以的,但会带来性能代价。您的实例有getter和setter方法。您可以调用instance.get('field')或instance.set('field',va
我有以下select语句,带有not working where子句:
Comment.findAll({
where:{
$or: {
id : {
$like: 11
},
'posts.id': {
$like: 23
我正在使用.build创建一个模型实例,稍后将保存该实例
const modelInstance = sequelize.models.SomeModel.build({
someKey: 'someValue',
// ...
});
稍后,在有条件地添加各种属性之后,我将调用.save(),然后将记录与另一个模型关联
modelInstance.save().then((modelInstance) => {
modelInstance.setParent(parentI
在创建外接程序后的续集响应“val”:“当前时间戳”时间的实例(2019-03-22 09:56:38)
下面描述代码中定义的内容
型号:
created_at: {
type: DataTypes.DATE,
allowNull: false,
defaultValue: sequelize.literal('CURRENT_TIMESTAMP'),
},
Me
我的模型是:
module.exports = function(sequelize, DataTypes) {
return Person = sequelize.define('Person', {
PersonTime: {
type: DataTypes.INTEGER,
allowNull: false
},
message: {
type: DataTypes.STRING,
allowNull: false
我在现有模式上使用Sequelize,想知道如何处理以下情况:
我有一个站点表(其中站点具有国际民航组织机场标识符):
var Site=sequelize.define('Site'{
uid:{
类型:DataTypes.INTEGER,
primaryKey:对
},
国际民航组织:{
键入:“字符”,
allowNull:错误
}
});
以及一个包含天气时间序列的表(带有ICAO和日期的复合主键):
var Weather=sequelize.define('Weather'){
国
我正在尝试对具有多个关系的对象执行更新。其中一个关系是多对多关系,我使用product.setCategories([categories])来设置/更新它们:
var p = req.product;
var cIds = [];
return models.sequelize.transaction(function (t) {
var promises = [];
//check if the product is supposed to have categories
我有两个多对多关系的模型。UserProject是另一个模型
User.belongsToMany(Project, through: UserProject);
Project.belongsToMany(User, through: UserProject);
如果搜索UserProject,如何包含用户或项目?例如:
UserProject.findAll({ where: { name: 'xxx' }, include: User });
我无法执行此操作,因为UserProjec
使用Sequelize是否可以动态选择带有变量的列
例如:
我有一个以天为列(星期一、星期二、星期三,…)的表格(日程表),在那里我存储工作时间
我想选择与我的客户端请求相对应的列(客户端我返回一天(字符串),在这一天,我必须选择正确的列并修改它。我可以使用
coach.getSchedule({
attributes: [dateToLowerCase]
})
但无法修改,我尝试了以下方法:
// schedule.se
这是可行的,因为我在我的场地实例中得到了一个“区域”数组include有一个as选项,但似乎只适用于模型,因此重复关联(标记/区域)似乎是描述这一点的唯一方法,它看起来并不十分枯燥(更不用说从维护角度来看可能会令人困惑)
这个vention表只有一个区域标记关联,但其他表有多个关联,所有关联都基于标记,但针对不同的类别,因此我可以看到我会一次又一次地遇到这个问题,而且代码味道很差
就我所见,使用作用域和查询方法的选项对我来说没有区别,而且我可以看到,我可能会选择使用多个作用域,以便在不需要数据时
我有聊天、用户和消息模型,消息属于用户,聊天可以有多个用户,用户可以有多个聊天。我有一个正在工作的Sequelize方法chat.getUsers(),该方法返回未排序的用户,我希望用户按照聊天中最后一条消息的createdAt排序
到目前为止,我得到的是:
UserModel.findAll({
include: [
{
model: ChatModel,
where: { id: chat.id }
我正在使用Sequelize.js处理MySQL中的数据,我想找到一个“updatedAt”在特定日期之后的数据,我尝试了以下代码:
const post = await Posts.findByPk(ctx.request.query.id);
const {updatedAt} = post;
const prev = await Posts.findOne({
where: {
updatedAt: {
[Op.gt]: updatedAt
我该怎么做,这只是我遇到麻烦的最后一行?对话显然属于请求
SELECT * FROM Dialogues AS Dialogue,Requests AS Request
WHERE Dialogue.RequestId=Request.id
AND Dialogue.updatedAt < Request.updatedAt
如果你正确阅读文档,你会找到$col操作符,所以你就去吧
sourceField:{$col:'otherTable.otherfield'}您也可以尝试一下-
c
我在学Sequalize
我正在使用迁移机制开发系统。这意味着我使用迁移添加外键
我有两种型号,即横幅和餐厅
一家餐厅可以有许多横幅。
一条横幅属于一家餐厅
所以在我的餐厅模式中
restaurants.associate = function (models) {
restaurants.hasMany(models.banners, {
foreignKey: 'restaurant_id'
})
}
banners.associate = function
我有一个分组数据查询,需要由结果中未包含的关联进行筛选
我尝试这样做时会出错,因为生成的sql不是我所期望的
User.findAndCountAll({
group: [
sequelize.fn(
'date_format',
sequelize.col('User.createdAt'),
'%Y-%m-%d'
),
我有一些数据在字段中创建了一个。我编写了一个sequelizefindAll查询,成功地将在日期创建的\u分组,这些日期发生在同一天(忽略小时、分钟、秒)。然后我返回该列表的结果.length,以获得唯一天数的总数(这是我的最终目标)。但是,我想知道我是否可以使用sequelizecount方法返回唯一天数的总数,而不是使用findAll然后返回result.length
我并没有尝试太多,因为我只是在学习sequelize,有点不知所措。我也得到了我想要的结果,但我希望找到一种使用count而
我有以下协会:
Room hasMany Key
User hasMany Key
现在我想找到一个特定用户有钥匙的所有房间
目前,我得到了所有具有特定用户id的密钥
然后我找到所有的房间,过滤掉那些没有找到钥匙的房间。这看起来相当愚蠢,因为所有这些都可以通过一个SQL命令完成
我可能会取出每个钥匙的房间id,并在房间查询中使用它们,但这仍然是两个请求。您应该能够使用预取/包含来解决此问题
您可以使用以下内容:
Room.findAll({
include: [
{model: K
我试图弄清楚如何使用order属性对子查询和父查询进行排序。在当前设置中,order子句对父查询进行排序,但不对子查询进行排序。这可能吗?如果是,我怎样才能做到
以下是我的完整查询:
models.Blog.findAll({
order: 'blog_date DESC',
limit: 10,
include: [
{
model: models.Topic,
我有两列:last和strike。我想查找last/strike大于10的所有结果。我可以编写一个原始查询,但我正在尝试看看是否可以用Sequelize方法来完成它。您可以使用与
Model.findAll({
地点:sequelize.where(
sequelize.literal('last/strike'),
'>',
10
)
})。然后(实例=>{
//结果。。。
});
上面使用的sequelize是sequelize的一个实例。此查询将生成类似以下内容的SQL
从表名称中选择*
我试图通过sequelize将这种类型的整数“4 | 8 | 128”存储到MySQL的整数列中
在MYSQL中,我可以使用原始查询来实现这一点
How can I do so using sequelize without writing it as raw queries?
Reference: https://www.databasejournal.com/features/mssql/article.php/3359321/Storing-Multiple-Statuses-Usin
我正在使用SequelizefindAndCountAll()对我的网站进行分页
findAndCountAll()返回的项目总数(3990)大于实际返回的数据数(3770)
有人知道如何使findAndCountAll()返回与实际返回数据相同的项目总数吗
我使用的表findAndCountAll()查询包括两个其他表,如下代码所示:
const patientModel:IIncludeOptions={
模特:病人,
属性:[“deviceId”、“firstName”、“lastName
我的mariadb数据库中有以下3个表:
帐户、程序、帐户程序
第三个表,AccountPrograms是一个关系表,它将许多帐户与许多程序连接起来。其结构如下:
AccountProgramId (BIGINT, Primary Key, AUTO INCREMENT)
programs_ProgramId (BIGINT)
accounts_AccountId (BIGINT)
DateFrom (TIMESTAMP)
DateTo (TIMESTAMP)
我通过以下方式设置了sequel
我有以下型号/表格:
Table: models
Columns: name, manufacturedFrom, manufacturedTo
以及一些示例记录:
5 Series 2010 2017
6 Series 2011 2018
X4 (F26) 2014 2018
现在让我们假设我想得到2018年生产的所有车型。这意味着我只能得到这两个:
6 Series 2011 2018
X4 (F26) 2014 2018
现
使用“包含”时,嵌套对象存储在以其模型命名的字段中,而不是以其关联命名
我有这样一个协会:
account.hasMany(key,{'foreignKey':'owner'});
key.belongsTo(account,{'foreignKey':'owner'});
[
{
id:1,
owner:3,
account:{id:3, ...}
},
{
id:2,
owner:123,
account:{id:123, ...
根据文档,我可以使用targetKeys选项为另一个模型的特定列创建一个foreignKey。我尝试在以下模型中实现这一点:
module.exports = function(sequelize, DataTypes) {
var Booking = sequelize.define("Booking", {
//id: {type:DataTypes.INTEGER, primaryKey:true}, // auto-generate
对于以下模型
"严格使用",;
module.exports=sequelize,数据类型=>{
const Execution=sequelize.define'Execution'{
uuid4:DataTypes.STRING,
componentId:DataTypes.INTEGER,
isComplete:DataTypes.BOOLEAN
}, {};
Execution.associate=functionmodels{
Execution.belongsTomodels.Co
这是我的类别型号
module.exports = (sequelize, DataTypes) => {
const Category = sequelize.define('Category', {
name: {
type: DataTypes.STRING,
allowNull: false,
required: true
},
{
freezeT
上一页 1 2 3 4 5 6 ...
下一页 最后一页 共 15 页