【发布时间】:2017-04-15 21:37:30
【问题描述】:
NodeJS
search_key = new RegExp('.*' + req.params.search_key + '.*', 'i');
Item.find({product_name:search_key}).exec(function (err, items) {
console.log(items) );
});
在这里我可以使用 search_key 搜索产品名称。但我的问题是,我的产品名称是“COMPLAN MILK BISCUITS 100GM”。如果我使用“BISCUITS COMPLAN”搜索,则找不到该产品。我需要根据搜索中的包含找到“BISCUITS COMPLAN”和“COMPLAN BISCUITS”。
【问题讨论】:
-
不确定您的要求。您希望“BISCUITS COMPLAN”找到所有包含 BISCUITS 或 COMPLAN 的产品?还是两者都没有具体顺序?
-
@SimonPA 我有一个商品名为 complan 牛奶饼干 100gm。如果我用关键字 Complan 搜索,它会得到该商品。但如果我用 Biscuits Complan 搜索,它没有找到那个项目。如果我们使用关键字 Biscuits Complan 进行搜索,我需要找到该项目。
-
由于您明确搜索“search_key”somewhere(这就是您在形成正则表达式之前和之后添加
.*时所做的),您将永远无法将“complan milk biscuits 100gm”与该字符串不包含的搜索词匹配。
标签: regex node.js mongodb mongoose mongodb-query