Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/mongodb/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在MongoDB中为字符串字段创建索引的原因_Mongodb_Indexing - Fatal编程技术网

在MongoDB中为字符串字段创建索引的原因

在MongoDB中为字符串字段创建索引的原因,mongodb,indexing,Mongodb,Indexing,当我在MongoDB中的字符串类型字段上创建索引时,我并没有从中获得显著的速度提升。事实上,当我使用查询时: db.movies.find({plot: /some text/}).explain("executionStats") 在我的数据库中,索引使查询速度降低了30-50%(约55k个文档) 我知道,我可以使用“文本”索引,这对我来说很好,但我想知道,为什么要在字符串字段上创建“普通”索引。字符串字段上的索引将提高精确匹配的性能,例如 db.movies.find({name: "so

当我在MongoDB中的字符串类型字段上创建索引时,我并没有从中获得显著的速度提升。事实上,当我使用查询时:

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})