例如,假设我们想查找带有查询的文档:
{
name: "somename",
age: someage,
city: "somecity",
country: "somecountry"
}
我们有两个索引:
{
name: 1,
age: -1
}
{
name: 1,
city: 1,
country: 1
}
MongoDB会使用这些索引之一来提高find()效率吗?
答案 0 :(得分:1)
是。
MongoDB将在您第一次运行查询时使用这两个索引,或者在query plan revision中指定时决定这样做。然后,它将缓存并重新使用对该查询形状(包含上述四个字段的查询)最有效的查询计划。
这基本上意味着它将使用查询优化器发现的最有效的两个索引之一。
您还可以通过以下方式指示MongoDB使用其中一个索引:
有关更多信息,请参阅MongoDB手册中的Query Plans。
为了查看您的查询使用了哪个索引(及其原因),您可以运行explain。