Sequelize include(如何构造查询)?

Sequelize include (how to structure query)?

我有一个查询要尝试基于一对多关系执行。 例如,有一个名为用户的模型和一个名为项目的模型。

用户有许多项目

项目有很多类型,存储在类型(枚举)列中。有 4 种不同的类型可能是我想要加载的用户可能拥有的类型。要注意的是,我想为可能存在的所有网络包含最新的项目记录(createdAt 列)。我还没有找到一种方法来构造查询以使其作为包含工作。但是,我找到了一种方法来执行原始查询,它可以满足我的要求。

我正在寻找一种无需进行原始查询的方法。通过执行原始查询,我必须将返回的结果映射到我从其他方法返回的用户,或者我必须执行一个简单的包含,然后 trim 关闭所有不是最新的结果。后者很好,但我看到这会变慢,因为用户会有很多项目,而且它会保持稳定增长。

这允许序列化一个 json 以用于任何关于模型的操作。读了,很好

sequelize-virtual-fields

// define models 
var Person = sequelize.define('Person', { name: Sequelize.STRING });
var Task = sequelize.define('Task', {
name: Sequelize.STRING,
nameWithPerson: {
    type: Sequelize.VIRTUAL,
    get: function() { return this.name + ' (' + this.Person.name + ')' }
    attributes: [ 'name' ],
    include: [ { model: Person, attributes: [ 'name' ] } ],
    order: [ ['name'], [ Person, 'name' ] ]
}
});

// define associations 
Task.belongsTo(Person);
Person.hasMany(Task);

// activate virtual fields functionality 
sequelize.initVirtualFields();