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



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

Product.find(
{
$or: [
{
name: /box/,
type: /box/,},
],
},
function (err, results) {
console.log(err);
console.log(results);
}
);

我无法在中使用我的变量框

名称:/box/

我试过"+框+"/"并在创建变量时将其放入//中,但这些都不起作用。

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

看起来$or运算符语法中也有错误。每个表达式都应该是单独的花括号。此外,由于您使用的是mongoose,您可以使用如下regex$选项用于使搜索不区分大小写。

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 的更多信息

我认为您正在尝试使用$or运算符。语法如下:

Product.find(
{
$or: [
{name: /box/},
{type: /box/}
]
});

最新更新