node.js - 在 Sequelize 中的嵌套急切加载中排序不起作用

标签 node.js sequelize.js eager-loading

我有四个模型 Tehsil、Ilr、Patwar 和 Villages。 他们的关联是

Tehsil -> 1:m -> Ilr -> 1:m -> Patwar -> 1:m -> 村庄

我想在我的所有四个模型上应用 order by。

查询:

var tehsilQuery = {
    include: [{
        model: Ilr,
        as: 'GirdawariKanoongo',
        include: [{
            model: Patwar,
            as: 'GirdawariPatwar',
            include: [{
                model: Villages,
                as: 'GirdawariVillages',
            }]
        }]
    }],
    order: [
        ['tehsil_name', 'ASC'],
        [ {model: Ilr, as: 'GirdawariKanoongo'}, 'kanoongo_name', 'ASC'],
        [ {model: Patwar, as: 'GirdawariPatwar'}, 'patwar_area', 'ASC'],
        [ {model: Villages, as: 'GirdawariVillages'}, 'village_name', 'ASC'],
    ]
};
return Tehsils.findAll(tehsilQuery);

[Error: 'girdawari_patwar' in order / group clause is not valid association]

如果我从 order 中删除 PatwarVillages(lat 两个模型),order by 就可以工作。

最佳答案

另一个使用嵌套排序的工作示例:

order: [  
  [ { model: chapterModel, as: 'Chapters' }, 'createdAt', 'ASC'], 
  [ { model: chapterModel, as: 'Chapters' }, 
    { model: partModel, as: 'Parts' }, 'createdAt', 'ASC'] 
],

其中部分和章节具有 M:1 关系。

关于node.js - 在 Sequelize 中的嵌套急切加载中排序不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40202540/

相关文章:

ruby-on-rails - 在 PostgreSQL 中预先加载和分组

mysql - 在 sequelize 中插入百万记录的最佳方法是什么

javascript - Electron,如何在没有nodeIntegration的情况下访问 Node API

node.js - 关于 Mongoose Schema 设计的问题

mysql - Sequelize cli 迁移与关联引用导致错误 `ERROR: Cannot add foreign key constraint`

laravel eloquent-在嵌套的渴望加载关系上不使用

c# - 我如何执行集成测试来测试急切加载的实体(EF4 Code First)

javascript - pcDuino 可以和 cylon.js 一起使用吗?

node.js - 使用 Sequelize 根据现有列的值设置新列的值

mysql - Sequelize : Write multidimensional array to database