在MongoDB中为字符串字段创建索引的原因
当我在MongoDB中的字符串类型字段上创建索引时,我并没有从中获得显著的速度提升。事实上,当我使用查询时:在MongoDB中为字符串字段创建索引的原因,mongodb,indexing,Mongodb,Indexing,当我在MongoDB中的字符串类型字段上创建索引时,我并没有从中获得显著的速度提升。事实上,当我使用查询时: db.movies.find({plot: /some text/}).explain("executionStats") 在我的数据库中,索引使查询速度降低了30-50%(约55k个文档) 我知道,我可以使用“文本”索引,这对我来说很好,但我想知道,为什么要在字符串字段上创建“普通”索引。字符串字段上的索引将提高精确匹配的性能,例如 db.movies.find({name: "so
db.movies.find({plot: /some text/}).explain("executionStats")
在我的数据库中,索引使查询速度降低了30-50%(约55k个文档)
我知道,我可以使用“文本”索引,这对我来说很好,但我想知道,为什么要在字符串字段上创建“普通”索引。字符串字段上的索引将提高精确匹配的性能,例如
db.movies.find({name: "some movie"})
索引还将用于带有前缀表达式的查找查询
db.movies.find({plot: /^begins with/})
谢谢但是,当我搜索{plot:/contains something/}时,有没有办法告诉MongoDB不要使用索引,因为在这种情况下,简单的COLLSCAN更快?您可以使用强制收集扫描。find({plot:/contains/}).hint({$natural:1})