node.js - 如何订购包含模型计数的记录?
问题描述
我是 postress 的新手,并尝试使用 sequelize 用 nodejs 实现 postress,我是一个查询中的东西,实际上我需要使用包含模型计数对数据进行排序。
user = sequelize.define("users",
{
....different Field
});
const order = sequelize.define("orders",
{
.... different field,
sellerId: {
type: DataTypes.INTEGER,
field: "sellerId",
allowNull: false
},
});
order.belongsTo(user, { as: "seller", foreignKey: "sellerId" });
user.hasMany(order, { foreignKey: "sellerId" });
现在我需要获取用户和用户订单,然后按订单计数对用户进行排序,我尝试了以下操作
let result = await user.findAndCountAll({
where: condition,
attributes: [
'users.*',
[Sequelize.fn('COUNT', Sequelize.col('orders.id')), 'orders']
],
include: [
{
model: order,
attributes: [],
required: false,
},
{
other model
}
],
order: [
["orders", "DESC"]
],
distinct: true,
offset: 0,
limit: 10
});
但我面临如下错误:(节点:20820)UnhandledPromiseRejectionWarning:
SequelizeDatabaseError:缺少表“订单”的 FROM 子句条目。
任何人都知道归档我的要求的原因或任何替代方法。
提前致谢。
解决方案
推荐阅读
- compiler-errors - symbol expected in first line of libre office type definition
- html - 如何更改主体颜色但不影响 div?
- c# - 检查类型是否派生自具有多个通用参数的接口
- ruby-on-rails - 将 aws elastic beanstalk ruby on rails 应用程序连接到 aws postgres rds
- swift - Swift Switch 语句无法匹配字符串:这可能是什么原因?
- r - 在 R 中,如何读取索引向量?
- laravel - Laravel Passport 自定义用户提供者:提供者选项不存在
- css - 带有反应的字体真棒 5.13.0
- python - Python:我想创建一个循环来计算要保存在文件夹中的附件
- python - 使用 smpt 发送带有多个附件的电子邮件