我有2个模型,国家/地区,城市。
它们彼此关联。城市属于国家。现在,我想做的就是在一个国家/地区查询中获取城市列表以及分页的限制和偏移(如果可能)。
如果我在下面进行操作,它将列出一个国家内的所有城市。我需要做的是能够使用限制和偏移参数限制城市。
Country.findById(1, {
include: [
{
model: City,
as: 'cities'
}
]
});
国家型号
module.exports = (sequelize, DataTypes) => {
let Country = sequelize.define('Country', {
id: {type: DataTypes.INTEGER, primaryKey: true, autoIncrement: true},
code: {type: DataTypes.STRING, allowNull: false, unique: true },
name: DataTypes.STRING
});
Country.associate = (models) => {
Country.hasMany(models.City, {as: 'cities'});
};
return Country;
}
城市模型
module.exports = (sequelize, DataTypes) => {
let City = sequelize.define('City', {
id: {type: DataTypes.INTEGER, primaryKey: true, autoIncrement: true},
name: {type: DataTypes.STRING, allowNull: false, unique: true},
});
City.associate = (models) => {
City.belongsTo(models.Country, {as: 'country'});
};
return City;
}
答案 0 :(得分:2)
Country.findById(1, {
include: [
{
model: City,
as: 'cities',
limit: 1
attributes: ["id", "countryId", "name"]
}
]
});
这将起作用,但是需要选择“ countryId”,否则会出现此错误
您也可以从这里参考。
答案 1 :(得分:0)
您在这里:
Country.findById(1, {
include: [
{
attributes : ["id", "countryId", "name"]
model: City,
as: 'cities' ,
separate: true,
offset: 5, // <--- OFFSET
limit: 5 // <--- LIMIT
}
]
});
更多详细信息: DO READ