索引与查询标准

时间:2014-01-30 11:27:49

标签: mongodb

我是MongoDB的新手。我已经读过,当我们查询某些数据时,索引会限制要扫描的文档。 参考: - http://docs.mongodb.org/manual/core/indexes-introduction 我将它与查询标准混淆,因为它限制了数据。 例如: - db.users.find({score:{"$lt":30}}). 在手册中,这个例子是在索引意义上给出和解释的。什么是索引以及它们与查询标准有何不同? 谢谢

2 个答案:

答案 0 :(得分:0)

MongoDB中的索引与关系数据库中的索引类似,但不完全相同。所以,为了获得基本的感觉,你可以想到这两者。查询条件定义了您的查询感兴趣的文档子集。索引可能能够使用查询条件来更快地回答查询。

假设您有一个没有索引的集合,并且您执行db.users.find({score:{$ lt:30}})。如果没有索引,则需要扫描整个集合以回答查询,处理所有文档,无论其值如何。使用“得分”索引,查询将能够使用索引仅向下钻取与查询匹配的文档,从而更快地执行。

答案 1 :(得分:0)

查询条件限制从服务器发送到客户端的数据,但它必须扫描每个文档以进行匹配。另一方面,Index通过具有特殊数据结构(Mongodb中的B树)来限制文档的扫描。 参考: - http://docs.mongodb.org/manual/core/indexes-introduction