【发布时间】:2021-07-31 06:13:39
【问题描述】:
我创建了一个用于搜索的 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 这样的参数时它不起作用我认为这是因为空间但不确定所以我修剪那个空间但它仍然不起作用想法。
我的搜索代码是 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');? -
感谢您的回复,它可以工作,但是当我在 URL 中这样传递并将其转换为 ?s=fn03%20a 时,我的搜索 API 没有任何想法,就像它没有命中但它可以工作在邮递员中。
-
不明白你的意思。在正则表达式中使用之前,请确保
searchquery是文字文本,而不是编码的 URI 参数。
标签: node.js regex mongodb search find