【问题标题】:Why sequelize query return one item but raw SQL returns 2 items?为什么sequelize查询返回一项但原始SQL返回2项?
【发布时间】:2020-10-06 10:26:12
【问题描述】:

这是 sequelize (6.3.5) 中的一个查询,模型 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']]
        });

这里当last_artwork_id 为7 时,应选择artwork#8 及其在artimage 中的2 个图像。但是artworks.length1 而不是2。但是当执行原始 SQL 代码时,它返回 2 个条目,因为 artwork#8 有 2 个图像。这是上面代码中的原始 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.lengthsequelizejs 是1 项而不是2 项(正确)?

【问题讨论】:

    标签: sequelize.js


    【解决方案1】:

    sequelizejs 在一个数组对象中返回连接的artimage,其键名为artimagesartworks.artimages[0] & artworks.artimages[1]

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2019-08-17
      • 1970-01-01
      • 1970-01-01
      • 2020-07-04
      • 1970-01-01
      • 2019-08-18
      • 1970-01-01
      相关资源
      最近更新 更多