我想使用GROUP BY,ORDER BY,COUNT在续写ORM中编写查询。
这是我的SQL查询:
function setDefaultRole((req, res, next) => {
if (not some check here) {
// if check fails, setting default role
req.user.role = 'mentor'
}
// call the next middleware
next();
})
function getAll((req, res, next) => {
if (req.user.role == 'mentor') {
// continue logic
filter = ???
}
})
我要续编,请帮帮我。
答案 0 :(得分:0)
const Op = require("sequelize").Op;
const sequelize = require("../models").sequelize;
models.OutputTable.findOne({
where: {
clusterId: {
[Op.ne]: null,
},
},
attributes: ["bucket_name", "clusterId", [sequelize.fn("COUNT", "1"), "CountedValue"]],
group: ["clusterId"],
order: [[sequelize.col("CountedValue"), "DESC"]],
});
使用文档-Querying 很简单。
findOne
方法将查询限制为1。attribute子句选择column_names
。知道sequelize无法识别您的CountedValue
列,因此使用order
来sequelize.col(columnAlias)
。
希望这会有所帮助。