这里有一个示例http://docs.mongodb.org/manual/tutorial/create-indexes-to-support-queries/#indexes-covered-queries
我希望了解为什么 { "user.login": 1 } 索引不能覆盖查询的根本原因。任何被索引的字段都是子文档中的字段。要索引子文档中的字段,请使用点表示法。例如,考虑具有以下形式文档的用户集合:{_id: 1, user: {login: "tester"}}。该集合具有以下索引:
{user: 1}
{"user.login": 1}
{user: 1}索引涵盖以下查询:
db.users.find({user: {login: "tester"}}, {user: 1, _id: 0})
然而{"user.login": 1}索引不涵盖以下查询:
db.users.find({"user.login": "tester"}, {"user.login": 1, _id: 0})
但是,此查询确实使用{"user.login": 1}索引来查找匹配的文档。
谢谢。