为了账号安全,请及时绑定邮箱和手机立即绑定

如何使用类似于 SQL 的 LIKE 运算符来使用查询猫鼬?

如何使用类似于 SQL 的 LIKE 运算符来使用查询猫鼬?

LEATH 2023-02-17 15:18:06
我正在尝试查询我的数据库以根据名称和类别搜索产品。我希望数据库在用户搜索某物时返回一组产品,该字符串应与产品的类别或类型或名称相匹配。我正在做以下事情Product.find(    {      $or: [        {          name: /box/,          type: /box/,},          ],        },        function (err, results) {          console.log(err);          console.log(results);        }      );我无法在以下情况下使用我的变量框:名称:/盒子/我试过 "/" + box + "/" 并在创建它时将我的变量放入 // 但这些都不起作用。我如何使用 like 运算符来查询我的数据库。
查看完整描述

3 回答

?
料青山看我应如是

TA贡献1772条经验 获得超7个赞

看起来运算符语法也有错误$or。每个表达式都应该是单独的大括号。另外,由于您使用的是猫鼬,因此可以使用如下的正则表达式。$option 用于使搜索不区分大小写。


Product.find(

  {

    $or: [

      {

        name: { $regex: "box", $options: "i" },

      },

      { type: { $regex: "box", $options: "i" } },

    ],

  },

  function (err, results) {

    console.log(err);

    console.log(results);

  }

);


查看完整回答
反对 回复 2023-02-17
?
小怪兽爱吃肉

TA贡献1852条经验 获得超1个赞

使用 RegExp 构造函数

key: new RegExp(box),

阅读有关 RegExp 的更多信息


查看完整回答
反对 回复 2023-02-17
?
精慕HU

TA贡献1845条经验 获得超8个赞

我认为您要做的是使用 $or 运算符。语法是这样的:


Product.find(

    {

      $or: [

        {name: /box/},

        {type: /box/}

      ]

    });


查看完整回答
反对 回复 2023-02-17
  • 3 回答
  • 0 关注
  • 77 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信