Discord JS续集-使用参数过滤FindAll

问题描述

我被困的第二时间。也许也是上次。

我确实有一个sqlite数据库,可以在此行中找到一些东西:

    const cards = await UserCollec.findAll({where: {user_id: target},attributes: ['card_name','card_lvl','amount']});

因此,该命令的作者拥有的每张卡片,都会显示3条信息(数据库中有更多信息)。

但是现在,我想向函数添加一个带有参数的过滤器函数。 我需要能够以任何顺序读取任意数量的参数...

我从这样的事情开始:

        let command = input.substr(1).split(' ')[0];
        let args = command.substr( command.indexOf(' ') + 1 );
        args = args.split(',').map(elem => elem.trim());
        let [Fname,Frole,Frace,Fsex,Fother] = args;

但是我认为这是错误方法。我需要检查* col命令后面的任何args中是否有一些bot可以在隐藏数据库列中找到的东西。除了存在user_id IF参数之外,我还应该将其添加到“ where”部分,但是我不知道如何在任何args中的任意位置添加arg。

简单的例子:

我想问问* col男性远程混乱

然后,该漫游器将在数据库中查找所有author.id卡,但其中:card_sex:男性,card_role:远程,card_race:混乱。

如果我以任意顺序询问* col范围内的男性混乱或* col范围内的男性混乱...也应该起作用。 然后,如果我只要求* col male或* col chaos,它也应该起作用。

我应该怎么编码呢?我想学习。

谢谢!

编辑:我觉得我不够清楚。 因此,总结一下,我需要一种告诉机器人的方法

“如果我给了您args,并且我给您的任何args位于数据库的任何列中的任何值中,请将其包含在const中。”

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)