在 Node JS 中搜索结果为 0
Getting 0 result on search in Node JS
我已经为搜索创建了一个 Node JS API,并在 MongoDB 中存储了一些数据。
我的数据存储方式如下:
FN02 ROL
FN02 ROM
FN02 RON
FN02 ROO
FN02 ROS
FN02 ROT
FN02 ROV
FN02 ROW
FN02 ROX
FN02 ROY
因此,当我使用 fn02 进行搜索时,效果很好,但是当我再添加一个参数(如 fno2r)时,它就不起作用了,我认为这是因为 space 但我不确定 trim space 但它仍然不起作用。
我的搜索代码是
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
个字符之间有任何空格,它们也可以被匹配。
我已经为搜索创建了一个 Node JS API,并在 MongoDB 中存储了一些数据。 我的数据存储方式如下:
FN02 ROL
FN02 ROM
FN02 RON
FN02 ROO
FN02 ROS
FN02 ROT
FN02 ROV
FN02 ROW
FN02 ROX
FN02 ROY
因此,当我使用 fn02 进行搜索时,效果很好,但是当我再添加一个参数(如 fno2r)时,它就不起作用了,我认为这是因为 space 但我不确定 trim space 但它仍然不起作用。
我的搜索代码是 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
个字符之间有任何空格,它们也可以被匹配。