我有两个表,locations
和sensors
。中的每个条目sensors
都有一个指向的外键locations
。使用Sequelize,如何获取与中的每个条目相关联的所有条目locations
以及其中的条目总数?sensors``locations
原始SQL:
SELECT
`locations`.*,
COUNT(`sensors`.`id`) AS `sensorCount`
FROM `locations`
JOIN `sensors` ON `sensors`.`location`=`locations`.`id`;
GROUP BY `locations`.`id`;
楷模:
module.exports = function(sequelize, DataTypes) {
var Location = sequelize.define("Location", {
id: {
type: DataTypes.INTEGER.UNSIGNED,
primaryKey: true
},
name: DataTypes.STRING(255)
}, {
classMethods: {
associate: function(models) {
Location.hasMany(models.Sensor, {
foreignKey: "location"
});
}
}
});
return Location;
};
module.exports = function(sequelize, DataTypes) {
var Sensor = sequelize.define("Sensor", {
id: {
type: DataTypes.INTEGER.UNSIGNED,
primaryKey: true
},
name: DataTypes.STRING(255),
type: {
type: DataTypes.INTEGER.UNSIGNED,
references: {
model: "sensor_types",
key: "id"
}
},
location: {
type: DataTypes.INTEGER.UNSIGNED,
references: {
model: "locations",
key: "id"
}
}
}, {
classMethods: {
associate: function(models) {
Sensor.belongsTo(models.Location, {
foreignKey: "location"
});
Sensor.belongsTo(models.SensorType, {
foreignKey: "type"
});
}
}
});
return Sensor;
};
使用findAll()
与include()
和sequelize.fn()
为COUNT
:
Location.findAll({
attributes: {
include: [[Sequelize.fn("COUNT", Sequelize.col("sensors.id")), "sensorCount"]]
},
include: [{
model: Sensor, attributes: []
}]
});
或者,您可能还需要添加一个group
:
Location.findAll({
attributes: {
include: [[Sequelize.fn("COUNT", Sequelize.col("sensors.id")), "sensorCount"]]
},
include: [{
model: Sensor, attributes: []
}],
group: ['Location.id']
})
我正在尝试删除与表中一行相关联的行,而不删除主行(因此不能使用级联)。 这是一个原始的PostgreSQL查询,它实现了我想用SQL实现的功能。sequelize是否能够生成这样查询: 模型是(不包括不相关的列): 关联在SEQELIZE中定义为: 查询的另一个版本可以是: 但我认为sequelize还不能处理子查询? 我尝试了一些类似的方法: 然而,后遗症抱怨道: 错误:Model.Destro
问题内容: 我想用sequelize ORM获得这样的查询: 问题是,后遗症不允许我在where子句中引用“ B”或“ C”表。以下代码 给我 这是完全不同的查询和结果 甚至不是有效的查询: 使用sequelize是否可以进行第一个查询,还是我应该坚持使用原始查询? 问题答案: 将引用联接表的列包装在
我有两个模型赋值和区域,每个都定义在单独的文件中,如下所示: Area.js: assignment.js: 当我试图用包含属性的区域信息(join)找到一些赋值时,我得到了一个错误,说:区域不关联到赋值! 提前谢谢你。
有两张表 article 与 tag 多对多关联 我现在需要通过tag来筛选关联的article应该怎么写呢 尝试了在 where 中查询,但是关联的属性是报错的,在 include 中来做筛选的话,将 tag 也进行了筛选 想要得到的结果就是 tag 传入 10 或者 11 或者 10和11 tag 都能返回图中的结果 有什么办法可以很简单的拿到呢
问题内容: 是否可以一次更新父模型和关联模型的属性?我无法使其正常工作,并且无法找到任何完整的示例。我不确定我的代码是否有问题或是否没有按照我期望的方式工作。我尝试将onUpdate:’cascade’添加到我的hasMany定义中,但这似乎无济于事。 楷模: 检索过滤器并尝试更新关联的FilteredContent对象上的属性: 这导致仅Filter对象中的属性被更新。如何获取它还更新Filte
我需要计算Pearson和Spearman的相关关系,并将其用作张量流的度量。 对于皮尔逊来说,这是微不足道的: 但对于斯皮尔曼,我是无知的! 从这个答案中: 但是这个返回。。。 我试过: 但运行此命令时,我出现以下错误: tensorflow.python.framework.errors_impl。InvalidArgumentError:输入必须至少有k列。有1个,需要32个 [{node