gpt4 book ai didi

sequelize.js - 如何使用 SequelizeJS 实现搜索功能?

转载 作者:行者123 更新时间:2023-12-04 13:16:04 26 4
gpt4 key购买 nike

我有一个 Ticket 模型和一个 Comment 模型。 Ticket 与 Comment 模型有 hasMany 关系。我想通过关键字搜索门票。关键字将与工单模型的主题属性和评论模型的正文属性进行匹配。

下面的代码不起作用:

var options = {
where: {
$or: [
{
subject: {
like: '%' + query + '%'
},
},
{
'Comment.body': {
like: '%' + query + '%'
},
}
]
},
include: [
{ model: Comment },
]
};

Ticket.findAll(options);

这是错误:“可能未处理的 SequelizeDatabaseError:列 Ticket.Comment.body 不存在”

我也尝试了下面的代码,但它也不起作用:
var options = {
where: {
CompanyId: req.company.id,
$or: [
{
subject: {
like: '%' + query + '%'
},
},
sequelize.cast(sequelize.col('comment.body'), 'TEXT', 'LIKE', '%' + query + '%')
]
},
include: [
{ model: Comment, as: 'comment', where: {} },
]
};

Ticket.findAll(options);

错误是:“可能未处理的错误:评论(评论)与票证无关!”

和这个:
var options = {
where: {
CompanyId: req.company.id,
$or: [
{
subject: {
like: '%' + query + '%'
},
},
sequelize.where(sequelize.col('Comments.body'), 'LIKE', '%' + query + '%')
]
},
include: [
{ model: Comment},
]
};

Ticket.findAll(options);

错误:“可能未处理的 SequelizeDatabaseError:缺少表“评论”的 FROM 子句条目”

我正在使用 SequelizeJS 2.0.4 版

我在 Github 上的 Sequelizejs 存储库中看到了这些相关问题:
  • https://github.com/sequelize/sequelize/issues/3261
  • https://github.com/sequelize/sequelize/issues/3095
  • https://github.com/sequelize/sequelize/issues/3527

  • 有谁知道解决方案?提前致谢!

    最佳答案

    对你来说可能有点太晚了,但对其他人来说; #3095更新了一些解决方案:

    var options = {
    where: {
    $or: [
    { 'subject': { like: '%' + query + '%' } },
    { '$Comment.body$': { like: '%' + query + '%' } }
    ]
    },
    include: [{ model: Comment }]
    };

    诀窍在于那些美元符号,尽管有 still problems使用此解决方案时 limit设置或使用 findAndCountAll() 查询时.

    关于sequelize.js - 如何使用 SequelizeJS 实现搜索功能?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31258158/

    26 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com