Sequelize.js 在sequelize中使用Op.contain进行查询时出错。
所以我在做一个学习项目。我得到以下错误Sequelize.js 在sequelize中使用Op.contain进行查询时出错。,sequelize.js,Sequelize.js,所以我在做一个学习项目。我得到以下错误 Unhandled rejection SequelizeDatabaseError: SQLITE_ERROR: unrecognized token: "@" at Query.formatError (/mnt/c/Users/Mike/websites/Treehouse-FSJS-Project-10/node_modules/sequelize/lib/dialects/sqlite/query.js:423:16) at af
Unhandled rejection SequelizeDatabaseError: SQLITE_ERROR: unrecognized token: "@"
at Query.formatError (/mnt/c/Users/Mike/websites/Treehouse-FSJS-Project-10/node_modules/sequelize/lib/dialects/sqlite/query.js:423:16)
at afterExecute (/mnt/c/Users/Mike/websites/Treehouse-FSJS-Project-10/node_modules/sequelize/lib/dialects/sqlite/query.js:119:32)
at replacement (/mnt/c/Users/Mike/websites/Treehouse-FSJS-Project-10/node_modules/sqlite3/lib/trace.js:19:31)
at Statement.errBack (/mnt/c/Users/Mike/websites/Treehouse-FSJS-Project-10/node_modules/sqlite3/lib/sqlite3.js:16:21)
下面是我的查询代码
router.get('/book_detail/:id', (req, res, next) => {
books
.findAll({
where: {
id: req.params.id,
},
include: [
{
model: loans,
},
],
})
.then(book => {
const patronList = []
const loans = []
book[0].dataValues.loans.map(patrons => {
patronList.push(patrons.dataValues.patron_id)
loans.push(patrons.dataValues)
console.log(loans)
})
patrons
.findAll({
where: {
id: {
[Op.contains]: patronList,
},
},
})
.then(patron => {
// console.log(patronList)
console.log(patron)
res.render('book_detail', { book, loans })
})
})
})
我应该能看到借出这本书的顾客。我得到了正确的id,正如您在下面的查询中看到的
Executing (default): SELECT `id`, `first_name`, `last_name`, `address`, `email`, `library_id`, `zip_code` FROM `patrons` AS `patrons` WHERE `patrons`.`id` @> 1, 3;
这似乎与Op.contains有关,但我想我不明白这为什么不能正常工作。任何帮助都将不胜感激 您可以更改以下查询:
where: {
id: {
[Op.contains]: patronList,
},
},
到
因为我看不到这里的contains
的任何用法
[Op.contains]:[1,2]/@>[1,2](PG数组包含运算符)
您可以将其用于json数组类型的字段,但在您的示例中是
类似于表的主键
您可以更改以下查询:
where: {
id: {
[Op.contains]: patronList,
},
},
到
因为我看不到这里的contains
的任何用法
[Op.contains]:[1,2]/@>[1,2](PG数组包含运算符)
您可以将其用于json数组类型的字段,但在您的示例中是
类似于表的主键
好的,这是有道理的。我不确定它是否会接受数组。非常感谢。好的,这很有意义。我不确定它是否会接受数组。非常感谢。