sequelize.js - Sequelize QueryGenerator 和范围

标签 sequelize.js

const model = MyModel.scope(scopes);
const { queryGenerator } = model;
const queryOptions = {
  scopes,
  attributes,
  include,
  where,
  order,
  offset,
  limit,
};
model._validateIncludedElements.bind(model)(queryOptions);

const cte = queryGenerator.selectQuery(
  model.getTableName(),
  queryOptions,
  model
)
  .slice(0, -1);
查询生成器有两个问题
  • 范围被忽略(包括默认范围),如何在查询生成器中应用范围?
  • 属性以驼色盒代替零食盒
  • 最佳答案

    通过阅读 Sequelize 上的源代码,我找到了解决方案,Utils.mapFinderOptionsmodel._injectScope

    const model = MyModel.scope(scopes);
    const { queryGenerator } = model;
    const queryOptions = {
      scopes,
      attributes,
      include,
      where,
      order,
      offset,
      limit,
    };
    model._injectScope(queryOptions);
    model._validateIncludedElements.bind(model)(queryOptions);
    
    Utils.mapFinderOptions(queryOptions, model);
    
    const cte = queryGenerator.selectQuery(
      model.getTableName(),
      queryOptions,
      model
    )
      .slice(0, -1);
    

    关于sequelize.js - Sequelize QueryGenerator 和范围,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65913708/

    相关文章:

    node.js - Sequelize 不加入关系

    javascript - Sequelize app.post : why "TypeError: Cannot read property ' create' of undefined"?

    node.js - Sequelize 没有按预期在 db 上创建外键

    mysql - Sequelize 中未处理的拒绝 SequelizeEagerLoadingError - Nodejs

    mysql - 如何获取至少有 1 个关联行与 sequelize 的行

    mysql - Sequelize 多对多关系不会作为外键保存在数据库中

    database - NodeJS 中模型的可选更改

    mysql - 序列化 findAndCountAll 不在关联中的行

    node.js - Sequelize 如何运作?

    node.js - Sequelize 中的复合主键