#mysql #node.js #json #sequelize.js
#mysql #node.js #json #sequelize.js
Вопрос:
В моей таблице mysql у меня есть столбец типа JSON
const monthlyProgress = sequelize.define("monthlyprogress", {
.
.
.
duration: {
type: Sequelize.JSON
}
});
return monthlyProgress;
в этом столбце «длительность» у меня есть массив объектов JSON
[{"time":"nov-2020"},{"time":"dec-2020"}]
Теперь мне нужно продолжить поиск, чтобы получить строки, где условие будет e
time = «nov-2020» этого столбца «duration»
. я пробовал много способов, но каждый раз терпел неудачу. Ниже я показываю один из способов, который я нашел в stackoverflow. Но это также неудачный attepmt
Это дает мне вывод тех строк, у которых нет времени =»ноябрь-2020″
await monthlyProgress.findAll({
where: {
duration: [
fn('JSON_CONTAINS', col('duration'), cast('{"time": "nov-2020"}', 'CHAR CHARACTER SET utf8'))
]
}
})
Это еще одна попытка, которая показывает это сообщение об ошибке UnhandledPromiseRejectionWarning: ReferenceError: JSON_CONTAINS не определено
await monthlyProgress.findAll({
where: {
[Op.and]: db.Sequelize.literal(JSON_CONTAINS(`duration`, '{"time": nov-2020}')),
}
})