0

有谁知道在 MongoDB 中运行查询并指定使用命名索引的方法?

我们的数据有多个索引,并且在某些情况下,mongo 对使用哪个索引来满足某些类型的查询做出了糟糕的选择。但我们不一定要声明使用特定索引。只有我们知道哪一个绝对是一个糟糕的选择。

使用命名索引很容易:

db.users.find({....}).hint( "index_name" )

排除命名索引可能如下所示:

db.users.find({....}).hint( "index_name", false)

任何见解都值得赞赏。

4

1 回答 1

3

不能排除索引,只能指定使用一个。但是,MongoDB 通过针对所有索引检查查询的搜索速度来根据您的查询经验性地测试索引。然后它根据这些结果确定要使用的索引。您能否使用 .explain(true) 运行查询以显示所有查询计划。

问候,查理

于 2013-09-10T21:36:04.720 回答