
上QQ阅读APP看本书,新人免费读10天
设备和账号都新为新人
4.2 单键、复合索引
在MongoDB中,我们可以对集合中的某个字段或某几个字段创建索引,以book实体为例,代码如下:

4.2.1 单字段索引
如果经常使用标题(title)这个字段进行搜索,我们可以为它创建一个单字段的索引,代码如下:

这里的“title:1”中的1表示索引采用的是升序排列。然而,在单字段的索引中,使用升序和降序并没有什么差别。
当然,我们也可以对内嵌的文档字段创建索引,比如根据作者的名称进行索引,代码如下:

4.2.2 复合索引
复合索引是多个字段组合而成的索引,其性质和单字段索引类似。但不同的是,复合索引中字段的顺序、字段的升降序对查询性能有直接的影响,因此在设计复合索引时则需要考虑不同的查询场景。
如果需要频繁地查询某分类下的book文档排名,那么可以按照分类、收藏数量创建一个复合索引,代码如下:
