Sequelize.js 为什么sequelize查询返回一项,而原始SQL返回两项?
下面是sequelize(6.3.5)中的一个查询,模型为Sequelize.js 为什么sequelize查询返回一项,而原始SQL返回两项?,sequelize.js,Sequelize.js,下面是sequelize(6.3.5)中的一个查询,模型为Artwork连接Artimage: const { Artwork, validateArtwork} = require('../models/artwork'); const { Artimage, validateArtimage} = require('../models/artimage'); artworks = await Artwork.findAll({ where :
Artwork
连接Artimage
:
const { Artwork, validateArtwork} = require('../models/artwork');
const { Artimage, validateArtimage} = require('../models/artimage');
artworks = await Artwork.findAll({
where : {
id: {[Op.gt]:last_artwork_id},
},
include: [{
model:Artimage,
attributes:['width', 'height', ['name', 'img_name'], 'path', 'size_kb', ['label', 'img_label'], ['fileName', 'img_fileName']],
}],
attributes:{excludes:['fort_token']},
order:[['id', 'DESC']]
});
这里,当最后一个艺术品id
为7时,艺术品8
应在艺术品图像
中与其2个图像一起拾取。但是artworks.length
是1
而不是2
。但是当执行原始SQL代码时,它返回两个条目,因为artwork#8
有两个图像。下面是上面代码中的原始SQL:
SELECT "artwork"."id", "artwork"."name", "artwork"."auther", "artwork"."category", "artwork"."wt_g", "artwork"."production_year", "artwork"."dimension",
"artwork"."uploader_id", "artwork"."description", "artwork"."note", "artwork"."tag", "artwork"."deleted", "artwork"."status", "artwork"."artwork_data",
"artwork"."last_updated_by_id", "artwork"."fort_token", "artwork"."createdAt", "artwork"."updatedAt", "artimages"."id" AS "artimages.id",
"artimages"."width" AS "artimages.width", "artimages"."height" AS "artimages.height", "artimages"."name" AS "artimages.img_name", "artimages"."path" AS "artimages.path",
"artimages"."size_kb" AS "artimages.size_kb", "artimages"."label" AS "artimages.img_label", "artimages"."fileName" AS "artimages.img_fileName" FROM
"artworks" AS "artwork" LEFT OUTER JOIN "artimages" AS "artimages" ON "artwork"."id" = "artimages"."artwork_id" WHERE "artwork"."id" > 7 ORDER BY "artwork"."id" DESC
为什么
artworks.length
是带有sequelizejs的1个项目而不是2个项目(正确)?sequelizejs
返回数组对象中加入的artimages
:artworks.artimages[0]&artworks.artimages[1]