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