我正在尝试查询我的数据库,以根据名称和类别搜索产品。当用户搜索某个东西时,我希望数据库返回一个产品数组,这个字符串应该与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/}
]
});