如何使用正则表达式创建索引显示所有字段

Posted

技术标签:

【中文标题】如何使用正则表达式创建索引显示所有字段【英文标题】:How can I create an index show all fields using regex 【发布时间】:2019-12-20 23:04:28 【问题描述】:

我想在 mongodb 中创建一个索引来显示 value = xyz 的所有字段

我是索引新手。有没有办法做到这一点?

我可以这样做吗:

browser: /^Amazon /i处创建索引

抱歉,我知道这个问题含糊不清,但还不确定如何使用索引。

【问题讨论】:

【参考方案1】:

如果您为browser 字段创建索引,那么是的,它会在您搜索browser: /^Amazon/ 或类似字段时为您提供帮助。请记住,仅当正则表达式以 ^ 开头并在其后包含一些静态文本时才使用索引(如您的示例中的 /^Amazon/)。

假设您的集合名为myCollection(请将其重命名为您自己的!)然后您可以通过以下方式创建索引:

db.myCollection.createIndex( browser: 1 )

您可以将索引视为字典。如果我让你打开一些字典(我的意思是真正的纸质书,语言字典)并在那里找到所有以“Amaz”开头的单词(如/^Amaz/),那么你可以快速完成。相反,如果我要求您找到所有以“Amaz”结尾的单词(/Amaz$/),或者在中间包含“Amaz”(/Amaz/),您将需要很长时间,因为您必须经过字典中的所有单词并检查它。 Mongo 的工作方式类似:)

【讨论】:

以上是关于如何使用正则表达式创建索引显示所有字段的主要内容,如果未能解决你的问题,请参考以下文章

如何使用 JS 正则表达式查找所有不匹配字符的索引?

根据返回的结果和前一个正则表达式的规则创建一个新的正则表达式 |索引正则表达式并查看正则表达式如何匹配子字符串

mongodb 正则表达式查询性能问题

Pandas - 过滤和正则表达式搜索 DataFrame 的索引

MongoDB,通过正则表达式对索引字段的查询性能

Python正则表达式如何进行字符串替换