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

我正在尝试查询我的数据库以根据名称和类别搜索产品。我希望数据库在用户搜索某物时返回一组产品,该字符串应与产品的类别或类型或名称相匹配。我正在做以下事情


Product.find(

    {

      $or: [

        {

          name: /box/,

          type: /box/,},

          ],

        },

        function (err, results) {

          console.log(err);

          console.log(results);

        }

      );

我无法在以下情况下使用我的变量框:


名称:/盒子/


我试过 "/" + box + "/" 并在创建它时将我的变量放入 // 但这些都不起作用。


我如何使用 like 运算符来查询我的数据库。


LEATH
浏览 105回答 3
3回答

料青山看我应如是

看起来运算符语法也有错误$or。每个表达式都应该是单独的大括号。另外,由于您使用的是猫鼬,因此可以使用如下的正则表达式。$option 用于使搜索不区分大小写。Product.find(  {    $or: [      {        name: { $regex: "box", $options: "i" },      },      { type: { $regex: "box", $options: "i" } },    ],  },  function (err, results) {    console.log(err);    console.log(results);  });

小怪兽爱吃肉

使用 RegExp 构造函数key: new RegExp(box),阅读有关 RegExp 的更多信息

精慕HU

我认为您要做的是使用 $or 运算符。语法是这样的:Product.find(    {      $or: [        {name: /box/},        {type: /box/}      ]    });
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript