Node.js 在节点JS中搜索时获取0结果
我已经创建了一个用于搜索的NodeJSAPI,并在MongoDB中存储了一些数据。 我的数据存储方式如下所示:Node.js 在节点JS中搜索时获取0结果,node.js,regex,mongodb,search,find,Node.js,Regex,Mongodb,Search,Find,我已经创建了一个用于搜索的NodeJSAPI,并在MongoDB中存储了一些数据。 我的数据存储方式如下所示: FN02 ROL FN02 ROM FN02 RON FN02 ROO FN02 ROS FN02 ROT FN02 ROV FN02 ROW FN02 ROX FN02 ROY 所以,当我用fn02搜索时,它工作得很好,但当我再添加一个参数,如fno2r,它不起作用,我认为这是因为空间,但不确定,所以我修剪了空间,但仍然不起作用 我的搜索代码是 searchque
FN02 ROL
FN02 ROM
FN02 RON
FN02 ROO
FN02 ROS
FN02 ROT
FN02 ROV
FN02 ROW
FN02 ROX
FN02 ROY
所以,当我用fn02搜索时,它工作得很好,但当我再添加一个参数,如fno2r,它不起作用,我认为这是因为空间,但不确定,所以我修剪了空间,但仍然不起作用
我的搜索代码是
searchquery是我的搜索数据
let regexexp = new RegExp(searchquery,'i');
s = {"name": regexexp};
function callback(totalcount){
db.collection("customers").find(s).limit(16).toArray(function(err, res) {
if (err) throw err;
responsedata = { status: true,error : false,data : res };
resolve(responsedata);
});
}
知道我做错了什么吗?我建议将输入中的空格设置为可选:
let regexexp = new RegExp(searchquery.split('').join('\\s*'),'i');
这里,
-将searchquery.split(“”)
拆分为单独的字符searchquery
-在每个字符之间用.join('\\s*')
连接拆分,这样,如果\s*
字符之间有任何空格,它们也可以匹配searchquery
searchquery
是文本,而不是编码的URI参数。感谢您的回复,它为我工作了。