Sequelize 查询字符串前缀 / 以

Ale*_*min 3 javascript postgresql sequelize.js

我正在构建一个自动填充函数,它接受一个字符串输入并返回一个字符串建议列表。

SequelizeiLike:query返回每个出现查询字符串的字符串。我想支持查询是前缀的字符串。例如,什么时候query='sh'结果应该返回以 开头的字符串,sh而不是sh在字符串中的任何位置。

从数据库接收数据后,这相对简单,但是我想知道是否有办法在查询数据库时通过 sequelize 完成此操作?如果是这样怎么办?

数据库大小将在 10,000 到 100,000 个字符串之间,不超过几个单词(确切地说是公司名称)。

可选问题:数据库通常比一般编写的代码具有更好的性能,在这种情况下是否应该有明显的差异?或者我应该只从数据库中收集所有数据并在通过 vanilla JS 之后对其应用一些其他过滤器。

let suggestions = yield db.Company.findAll({
  limit: 7,
    where: {
      company_name: {
        $iLike: '%'+this.data.query
      }
    }
 })
Run Code Online (Sandbox Code Playgroud)

Ale*_*min 5

好像这个超级简单!该'%'行为像一个*从正则表达式。所以query + '%'返回任何以 query 为前缀的结果。

let suggestions = yield db.Company.findAll({
    limit: 5,
    where: { $or: [
      { stock_ticker: { $ilike: query + '%' } },
      { company_name: { $ilike: query + '%' } }
    ]},
    order: '"volume" DESC'
  })
Run Code Online (Sandbox Code Playgroud)