[英]Mongodb Nodejs Regex Query
我正在使用模块“ mongodb”从节点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的许多组合时,您将获得结果。
如果您具有自动完成功能,或者客户不知道确切的名称,则此方法非常有效。 Mongo处理了会匹配字母的强文本搜索算法,即使它们的顺序不正确。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.