我正在尝试查询我的数据库以根据名称和类别搜索产品。我希望数据库在用户搜索某物时返回一组产品,该字符串应与产品的类别或类型或名称相匹配。我正在做以下事情Product.find( { $or: [ { name: /box/, type: /box/,}, ], }, function (err, results) { console.log(err); console.log(results); } );我无法在以下情况下使用我的变量框:名称:/盒子/我试过 "/" + box + "/" 并在创建它时将我的变量放入 // 但这些都不起作用。我如何使用 like 运算符来查询我的数据库。
3 回答
料青山看我应如是
TA贡献1772条经验 获得超8个赞
看起来运算符语法也有错误$or。每个表达式都应该是单独的大括号。另外,由于您使用的是猫鼬,因此可以使用如下的正则表达式。$option 用于使搜索不区分大小写。
Product.find(
{
$or: [
{
name: { $regex: "box", $options: "i" },
},
{ type: { $regex: "box", $options: "i" } },
],
},
function (err, results) {
console.log(err);
console.log(results);
}
);
精慕HU
TA贡献1845条经验 获得超8个赞
我认为您要做的是使用 $or 运算符。语法是这样的:
Product.find(
{
$or: [
{name: /box/},
{type: /box/}
]
});
添加回答
举报
0/150
提交
取消