首页 文章

查询Sequelize中的连接字段

提问于
浏览
0

我正在使用Sequelize实现一个应用程序来处理与数据库的通信 .

我在数据库中有许多用户,我想实现一些搜索功能,允许用户根据他们的全名查找其他用户 . 用户(在其他属性中)具有其模型中的firstName和lastName .

正在寻找其他用户的用户可以搜索“John Doe”,其中John是名字,Doe是姓氏 . 不幸的是,名字和姓氏存储在我的模型中的单独字段中 . 因此,我需要在下面尝试的“where”-clause中连接firstName和lastName字段 .

在where子句中,我只是连接firstName和lastName,然后检查是否"like"是作为参数 name 传递的全名 . 我认为下面这段代码的用意很清楚 . 然而它不起作用(错误说它没有't expect the '(允许' after concat so this syntax isn') . 有一个简单的技巧可以做到这一点,还是应该使用 sequelize.query 编写我自己的查询?

var findUserByName = function(name) {
    return models.User.find({where: {concat(firstName,' ',lastName): like: name}});
}

1 回答

  • 0

    你可以这样做:

    User.find({
        where: {
            $or: [
                name: {
                    $like: ['%', firstName, '%'].join('')
                },
                lastName: {
                    $like: ['%', lastName, '%'].join('')
                }
            ]
        }).success(function (user) {});
    

相关问题