在所有领域进行猫鼬搜索

时间:2014-12-26 08:57:48

标签: regex node.js mongodb mongoose

目前,当我使用mongoose搜索我的数据库(mongodb)时,我使用find并提供它需要找到的字段以及它需要匹配的regex字符串。

搜索包含字符串" 78934"的所有文件。在电话号码我使用查询

 Contact.find({phone: /78656/i },function(){});

如果我想在桌子的所有字段中搜索78656怎么办?

我希望我的用户键入任何字符串,并使用该搜索字符串获取最相关的搜索结果,而不是要求他也提供他希望该字符串匹配的字段。 mongoose是否支持这样的搜索查询?

2 个答案:

答案 0 :(得分:2)

Mongoose支持mongoDB支持的内容,而mongoDB不支持。您可能正在研究ElasticSearch这个功能。

答案 1 :(得分:0)

也许这会帮助遇到相同问题的任何人 文字索引 MongoDB提供文本索引以支持对字符串内容的文本搜索查询。文本索引可以包含任何值为字符串或字符串元素数组的字段。

要执行文本搜索查询,您的集合上必须有一个文本索引。一个集合只能有一个文本搜索索引,但是该索引可以覆盖多个字段。

例如,您可以在mongo shell中运行以下命令,以允许在名称和说明字段中进行文本搜索:

db.stores.createIndex({名称:“文本”,描述:“文本”}) 然后尝试运行 db.stores.find({$ text:{$ search:“ java coffee shop”}})