在 Sequelize 中查找 JSON 字段值可以通过使用 where
子句和 Sequelize.literal
方法来实现。以下是一个示例代码,展示了如何在 Sequelize 中查找 JSON 字段值:
假设我们有一个名为 users
的表,其中有一个 JSON 类型的字段 metadata
,我们希望查找 metadata
字段中 key
为 value
的记录。
const { Sequelize, Op } = require('sequelize');
const sequelize = new Sequelize('database', 'username', 'password', {
host: 'localhost',
dialect: 'mysql' // 或其他数据库类型
});
const User = sequelize.define('User', {
metadata: {
type: Sequelize.JSON,
allowNull: false
}
}, {
// 其他模型选项
});
// 查找 metadata 字段中 key 为 value 的记录
User.findAll({
where: {
metadata: {
[Op.contains]: [{ key: 'value' }]
}
}
}).then(users => {
console.log(users);
}).catch(err => {
console.error(err);
});
在这个示例中,我们使用了 Op.contains
操作符来查找 metadata
字段中包含 { key: 'value' }
的记录。
希望这些信息对你有所帮助!如果有更多问题,请随时提问。
领取专属 10元无门槛券
手把手带您无忧上云