我正在使用Mysql 8.1的Sequelize ORM(v5.21.4),当调用方法时,我的Sequelize模型的findAll不会检索所有记录,当在编辑器上执行相同的查询时,Mysql返回更多。
cursoSenceModel.js
const CursoSenceModel = sequelize.define('curso', {
id:{
type:DataTypes.INTEGER,
field:'cs_id',
primaryKey:true,
autoIncrement: true
},
codigoCurso:{
type:DataTypes.STRING,
field:'cuse_id',
allowNull: false
},
rutOtec:{
type:DataTypes.STRING,
field:'cuse_rut_otec'
},
dvOtec:{
type:DataTypes.STRING,
field:'cuse_dv_otec'
},
razonSocial:{
type:DataTypes.STRING,
field:'cuse_nombre_otec'
},
acreditacion:{
type:DataTypes.DATE,
field:'cuse_acreditacion'
},
ingresoSolicitud:{
type:DataTypes.DATE,
field:'cuse_ingreso_solicitud'
},
terminoVigencia:{
type:DataTypes.DATE,
field:'cuse_termino_vigencia'
},
comuna:{
type:DataTypes.INTEGER,
field:'comu_id'
},
emailOtec:{
type:DataTypes.STRING,
field:'cuse_email_otec'
},
webOtec:{
type:DataTypes.STRING,
field:'cuse_web_otec'
},
horasTeoricas:{
type:DataTypes.DECIMAL,
field:'cuse_horas_teoricas'
},
horasPractica:{
type:DataTypes.DECIMAL,
field:'cuse_horas_practicas'
},
horasElearning:{
type:DataTypes.DECIMAL,
field:'cuse_horas_elearning'
},
participantes:{
type:DataTypes.INTEGER,
field:'cuse_participantes'
},
area:{
type:DataTypes.STRING,
field:'cuse_area'
},
especialidad:{
type:DataTypes.STRING,
field:'cuse_especialidad'
},
objetivoCurso:{
type:DataTypes.TEXT,
field:'cuse_objetivo_curso'
},
modalidadInstruccion:{
type:DataTypes.STRING,
field:'cuse_modalidad_instruccion'
},
montoPersonalInstruccion:{
type:DataTypes.DECIMAL,
field:'cuse_monto_personal_instruccion'
},
montoMaterialesConsumo:{
type:DataTypes.DECIMAL,
field:'cuse_monto_materiales_consumo'
},
montoMaterialDidactico:{
type:DataTypes.DECIMAL,
field:'cuse_monto_material_didactico'
},
montoUtilizacionLocal:{
type:DataTypes.DECIMAL,
field:'cuse_monto_utilizacion_local'
},
montoUtilizacionEquipos:{
type:DataTypes.DECIMAL,
field:'cuse_monto_utilizacion_equipos'
},
montoMovimientosViaticoTraslado:{
type:DataTypes.DECIMAL,
field:'cuse_monto_movimientos_viatico_traslado'
},
montoGastosGenerales:{
type:DataTypes.DECIMAL,
field:'cuse_monto_gastos_generales'
},
montoUtilidad:{
type:DataTypes.DECIMAL,
field:'cuse_monto_utilidad'
},
valorTotalCurso:{
type:DataTypes.DECIMAL,
field:'cuse_valor_total_curso'
},
valorEfectivoParticipante:{
type:DataTypes.DECIMAL,
field:'cuse_valor_efectivo_participante'
},
valorImputableParticipante:{
type:DataTypes.DECIMAL,
field:'cuse_valor_imputable_participante'
},
ultimaActualizacion:{
type:DataTypes.DATE,
field:'cuse_ultima_actualizacion',
allowNull: false
},
nombre:{
type:DataTypes.STRING,
field:'cuse_nombre'
},
direccionOtec:{
type:DataTypes.STRING,
field:'cuse_direccion_otec'
},
fonoOtec:{
type:DataTypes.STRING,
field:'cuse_fono_otec'
},
codigo:{
type:DataTypes.STRING,
field:'cuse_codigo'
},
vigencia:{
type:DataTypes.BIGINT,
field:'cuse_vigencia'
},
clienteComercial:{
type:DataTypes.BIGINT,
field:'cuse_id_cliente_comercial'
},
tipoCurso:{
type:DataTypes.STRING,
field:'cuse_tipo_curso'
},
tipoElearning:{
type:DataTypes.STRING,
field:'cuse_tipo_elearning'
},
tipoOtec:{
type:DataTypes.TINYINT,
field:'cuse_tipo_otec'
},
}, {
tableName: 'sgc_cursos_sence',
timestamps: false
});
CursoSenceModel.sync();
module.exports = CursoSenceModel;
代码
const cursosBD = await CursoSenceModel.findAll({
attributes:['codigoCurso'],
where:{
codigoCurso:ids
},
raw:true
});
console.log('cursosSence',cursosBD);
cursosBD返回17条记录,但对Mysql的相同查询返回40条记录。
Query result
我已经尝试升级到Sequelize v6,但同样的问题.
1条答案
按热度按时间7ajki6be1#
在Sequelize v5中,您需要添加
Op.in
操作符,以下是代码