我正在尝试查询数据库以根据名称和类别搜索产品。我希望数据库在用户搜索某些内容时返回一个产品数组,此字符串应与procut的类别或类型或名称匹配。我正在做以下
Product.find(
{
$or: [
{
name: /box/,
type: /box/,},
],
},
function (err, results) {
console.log(err);
console.log(results);
}
);
我无法在以下位置使用变量框:
名称:/ box /
我尝试了“ /” + box +“ /”,并在创建变量时将其放入//中,但没有一个起作用。
如何使用like运算符查询我的数据库。
答案 0 :(得分:1)
似乎$or
运算符语法中也有错误。每个表达式应放在单独的大括号中。另外,由于您使用的是猫鼬,因此可以如下使用正则表达式。 $ option用于使搜索不区分大小写。
Product.find(
{
$or: [
{
name: { $regex: "box", $options: "i" },
},
{ type: { $regex: "box", $options: "i" } },
],
},
function (err, results) {
console.log(err);
console.log(results);
}
);
答案 1 :(得分:0)
答案 2 :(得分:0)
我认为您正在尝试使用$ or运算符。语法如下:
Product.find(
{
$or: [
{name: /box/},
{type: /box/}
]
});