概述
索引能提高查询的效率,MongoDB在你建立集合的时候,会自动帮你给_id字段建立索引。
用createIndex方法在集合中创建索引。索引能极大提高查询速度。
为一个字段或者多个字段建立索引,用createIndex来给指定的文档建立索引,该文档包含每个字段的索引和索引类型。
new Document(<field1>, <type1>).append(<field2>, <type2>) ...
对于一个ascending 的索引类型,为<type>指定值为1;
对于一个descending 的索引类型,为<type>指定值为-1.
createIndex方法仅在索引不存在的时候创建索引。
前提条件
下面的例子依然沿用前面的test数据库中的restaurant集合。关于如何导入数据集,请查看以前的博文。
紧接着前面的步骤:
首先需要导入需要的包:
import org.bson.Document;
为单个字段创建索引
为restaurant集合中的"cuisine"字段创建ascending索引
db.getCollection("restaurants").createIndex(new Document("cuisine", 1));
改语句不会返回值。
创建复合索引
MongoDB支持复合索引,即一个索引包含多个字段。顺序取决于索引如何存储它的键。例如,下面的操作就是创建在"cuisine"和"address.zipcode"两个字段上建一个复合索引。该索引会给实体先按照“cuisine”升序排,然后按照“address.zipcode”降序排列。
db.getCollection("restaurants").createIndex(new Document("cuisine", 1).append("address.zipcode", -1));
结果不会返回值。
额外
你可以给索引指定很多属性,比如唯一性约束。在Java文档中,查看更多createIndex的内容。
MongoDB提供了不同的索引类型来支持不同的查询和数据集。在MongoDB手册中,查看更多索引的介绍,了解MongoDB各种索引类型。
网友评论