繁体   English   中英

Mongodb Node.js正则表达式查询

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM