Sequelize-在所有表的所有列中动态搜索

时间:2019-01-10 17:34:18

标签: node.js search sequelize.js

我想在多个表以及该表的所有列中使用sequelize创建动态搜索。

我希望所有结果都包含任何表的一列或多列,并在搜索框中插入文本。 我尝试这样的事情:

return await Models.table1.findAll({
        subQuery: false,
        attributes: [...
            ['description', 'name'],
            'isActive'
        ],
        include: [{
            model: Models.table2,
            as: 'data',
            required: true,
            attributes: [...
                ['description', 'name'],
                'isActive'
            ],
            where: {
                isActive: 1,
                description:{
                    $like: '%' + text + '%'
                }
            },
            include: [{
                model: Models.table3,
                as: 'data',
                required: true,
                attributes: [
                    [...],
                    ['description', 'name'],
                    'isActive'
                ],
                where: {
                    isActive: 1,
                    description:{
                        $like: '%' + text + '%'
                    }
                },
                include: [{
                    model: Models.table4,
                    as: 'data',
                    required: true,
                    attributes: [
                         ...
                        'comments',
                        'isActive'
                    ],
                    where: {
                        isActive: 1
                    }
                }]
            }]
        }],
        where: {
            isActive: 1
        }

    })

但是,即使所有“描述”列均与文本匹配,我仍会得到结果。我可以从table4开始查询吗?自下而上,如果有人匹配该文本,则返回?

对不起,我的英语,希望你能理解我。

谢谢你

0 个答案:

没有答案