以下查询有效,但代码无效:
/*
SELECT "UserRole", Avg(rating) FROM "Reviews" AS "Review" GROUP BY "UserRole";
UserRole | avg
----------+--------------------
COACH | 2.0000000000000000
PLAYER | 3.0000000000000000
(2 rows)
*/
router.get("/as",function(request,response){
model.Review.find({
where: { UserId: 1},
attributes: [ "UserRole", [ sequelize.fn('AVG', sequelize.col('rating')) ]],
group: ["UserRole"],
}).then(function(ratings){
})
})
这是我收到的错误:
Unhandled rejection TypeError: s.replace is not a function
at Object.module.exports.removeTicks (/media/mydata/projects/jobcuejs/node_modules/sequelize/lib/utils.js:376:14)
at Object.module.exports.addTicks (/media/mydata/projects/jobcuejs/node_modules/sequelize/lib/utils.js:372:29)
at Object.QueryGenerator.quoteIdentifier (/media/mydata/projects/jobcuejs/node_modules/sequelize/lib/dialects/postgres/query-generator.js:844:20)
at Object.QueryGenerator.quoteIdentifiers (/media/mydata/projects/jobcuejs/node_modules/sequelize/lib/dialects/abstract/query-generator.js:937:19)
at /media/mydata/projects/jobcuejs/node_modules/sequelize/lib/dialects/abstract/query-generator.js:1080:82
at Array.map (native)
at Object.QueryGenerator.selectQuery (/media/mydata/projects/jobcuejs/node_modules/sequelize/lib/dialects/abstract/query-generator.js:1062:55)
at QueryInterface.select (/media/mydata/projects/jobcuejs/node_modules/sequelize/lib/query-interface.js:661:25)
at null.<anonymous> (/media/mydata/projects/jobcuejs/node_modules/sequelize/lib/model.js:1413:32)
at tryCatcher (/media/mydata/projects/jobcuejs/node_modules/bluebird/js/release/util.js:16:23)
at Promise._settlePromiseFromHandler (/media/mydata/projects/jobcuejs/node_modules/bluebird/js/release/promise.js:503:31)
at Promise._settlePromise (/media/mydata/projects/jobcuejs/node_modules/bluebird/js/release/promise.js:560:18)
at Promise._settlePromise0 (/media/mydata/projects/jobcuejs/node_modules/bluebird/js/release/promise.js:605:10)
at Promise._settlePromises (/media/mydata/projects/jobcuejs/node_modules/bluebird/js/release/promise.js:684:18)
at Async._drainQueue (/media/mydata/projects/jobcuejs/node_modules/bluebird/js/release/async.js:126:16)
at Async._drainQueues (/media/mydata/projects/jobcuejs/node_modules/bluebird/js/release/async.js:136:10)
我在这里做错了什么?
最佳答案
你可以尝试这样的事情
[ sequelize.fn('AVG', sequelize.col('rating')), "avg" ]
关于javascript - s.replace 不是sequelize.fn 'AVG' 上的函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37485115/