转载请注明出处:

  虽然MongoDB 查询优化器一般工作的很不错,但是也可以使用 hint() 来强迫 MongoDB 使用一个特定的索引。在这种方法下某些情形下会提升性能。

  一个有索引的 collection 并且执行一个多字段的查询。传入一个制定的索引,强迫查询使用该索引

  语法

db_name.table_name.find({query}).hint({"index_name":1});

  参数

名称 描述
db_name 数据库名
table_name 集合名
query 查询条件
index_name 索引名

  说明

  这里,我们在使用 query 条件查询时,强制使用 index_name 索引。

  案例

db.student.find({socre:{$gt:80}}).hint("score_1").explain()

  java 在 MongoDB 查询时,指定查询强制 使用的索引:springframework 中 MongoDB 的 查询api 类:query 已经支持了 在查询时的强制指定查询的索引:

  源码使用封装的方法如下:在封装查询条件时,通过 这个方法,将索引名称传入就可以进行 强制索引查询