Mongodb Nodejs Regex Query
Mongodb Nodejs Regex Query
我正在使用模块"mongodb"从node js API查询mongodb。我正在尝试通过搜索查询搜索联系人文档。相同的选择器如下:
selector['users.name'] = {$regex: new RegExp(params.query), $options:"i"}
考虑到用户的名称是"Sagar Gopale",搜索查询是"sagar"甚至"gopale",那么上述工作正常并正确返回结果。但是如果我输入搜索查询作为"sagar gopale",它会返回空结果。有人可以为我提供解决方案,以便我可以输入包括空格在内的搜索查询吗?
提前谢谢。
实际上,
如果您坚持使用regexp
,您将在这里遇到很多困难,我建议您创建一个text
索引:
collection.createIndex({"users.name" : "text"});
然后当你搜索时:
db.collection('users').find({
$text: {
$search: params.query,
$caseSensitive: false,
}
});
这样,当您使用"Sagar"、"sagar"、"sagar gopa"、"gopale sagar"以及这 2 种组合的许多组合时,您将获得结果。
如果您有自动完成功能,或者客户端不知道确切的名称,则此 aproach 效果非常好。Mongo处理了强大的文本搜索算法,这些算法将匹配字母,即使它们没有正确的顺序。
相关文章:
- RegEx删除空属性?例如,如果(class=“”||class=“”)移除;否则就下课
- Regex代码只允许一个空格
- Regex匹配除“”之外的所有字符;.js”;
- RegExp:匹配Javascript中除regex值之外的所有内容
- Javascript RegEx validator
- 使用regex的jquery keydown绑定不会验证撇号和句点
- 制作一个regex来验证只有一个数字的字符串
- RegEx JavaScript:数字后的符号提取
- PHP和Javascript之间的Regex差异
- 链接和youtube的Javascript和regex
- 包含圆括号的JavaScript Regex模式
- 相当复杂的Regex
- 如何在ng regex中包含qutoes+双引号
- 在javascript中,I'我很难弄清楚如何让regex只替换捕获而不替换匹配
- Regex提取URL返回数组的一部分;未定义”;
- 在javascript中接收来自mssql.query的变量
- Query JS Ext.data.Store
- 将po-box javascript正则表达式转换为c#regex
- Datatables查询url字符串:需要regex来修复url解析
- Mongodb Nodejs Regex Query