gpt4 book ai didi

javascript - Sequelize - 包括只找到一个结果

转载 作者:行者123 更新时间:2023-12-03 22:38:21 24 4
gpt4 key购买 nike

什么:

  • 影片 表和 Credits 表,具有 一对多 关系。
  • 我在 Film 上运行 findAll 查询,包括 Credits。


  • 问题: 我应该得到大约 20 个信用点,我只得到 1 个。

    编辑问题: 我将 LIMIT 设置为 20(我在数据库中有 28 个)。我仍然每部电影获得 1 个学分,但是我没有获得 20 部电影……有时是 12,有时是 16。这是不一致的。



    电影模型
    module.exports = (sequelize, DataTypes) => {

    const Film = sequelize.define('Film', {
    name: { type: DataTypes.STRING, allowNull: false },
    description: { type: DataTypes.STRING, allowNull: false }
    },

    {
    freezeTableName: true
    });


    Film.associate = (models) => {
    Film.hasMany(models.Credit, { foreignKey: 'film_id', as: 'credits' });
    };

    return Film;
    };

    积分模型
    module.exports = (sequelize, DataTypes) => {

    const Credit = sequelize.define('Credit', {
    film_id: { type: DataTypes.INTEGER, allowNull: false },
    name: { type: DataTypes.STRING }
    },

    {
    freezeTableName: true
    });


    Credit.associate = (models) => {
    Credit.belongsTo(models.Film, { foreignKey: 'film_id', onDelete: 'CASCADE' });

    return Credit;
    };

    查询
    Film.findAll( {
    subQuery: false,
    order: sequelize.literal('rand()'),
    limit: 20,
    include: [
    { model: Credit, as: "credits", required: true, all: true }
    ],
    } )

    最佳答案

    向 FindAll 的外部查询添加 LIMIT 也会限制包含的结果数量。

    虽然起初令人困惑,但这是预期的功能。

    关于javascript - Sequelize - 包括只找到一个结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55048090/

    24 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com