我如何在loopback中使用REGEX,其中连接到SQL Server DataSource



我正在使用以下代码在SQL Server DB中搜索用户,但它会引发Regexp错误。

使用loopback 3loopback-mssql-connecter

let searchedValue = await User.find({
        where: {
          or: [
            {first_name: new RegExp('\b' + req.query.s, 'i')},
            {last_name: new RegExp('\b' + req.query.s, 'i')},
            {email: new RegExp('^' + req.query.s, 'i')},
          ],
        },
      });

将其与MongoDB数据义相关时,此确切的查询有效,但使用SQL Server DataSource时行不通。

我得到以下错误

Microsoft SQL Server不支持正则表达式操作员
请求get/api/leagus/searchusers/?s = nir:
requestError:" Regexp"附近的语法不正确。

SQL Server不支持正则。您可以使用LIKE,但不能保证。

            {first_name: {like: '\b' + req.query.s}},
            {last_name: {like: '\b' + req.query.s}},
            {email: {like: '^' + req.query.s}}

mongoDB是另一种支持它们的数据源。

尝试SQL DataSource

   [
        {first_name: { like: `%${req.query.s}%`} },
        {last_name: { like: `%${req.query.s}%`} },
        {email: { like: `${req.query.s}%`} },
   ]

最新更新