Sequelize QueryGenerator 和范围

问题描述 投票:0回答:2
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);

我对查询生成器有两个问题

  1. 范围被忽略(包括默认范围),如何在查询生成器中应用范围?
  2. 属性是骆驼箱而不是零食箱
sequelize.js
2个回答
1
投票

通过阅读续集的源代码,我找到了解决方案,

Utils.mapFinderOptions
model._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);

0
投票

使用此站点生成查询: https://querygenerator.oaktefy.com/

© www.soinside.com 2019 - 2024. All rights reserved.