索引构建器
概述
在本指南中,您可以了解如何使用构建器在MongoDB Java驱动程序中指定索引。TheIndexes
构建器提供了构建以下类型索引的帮助方法
索引存储集合数据集的子集。索引存储特定字段或字段集的值,按字段的值排序。有关索引覆盖的查询示例,请参阅我们的索引指南。
Indexes
类为所有MongoDB索引类型提供了静态工厂方法。每个方法都返回一个BSON实例,您可以将此实例传递给createIndex().
提示
升序索引
升序索引允许您按照索引字段值从小到大的顺序对查询结果进行排序。
为了创建升序索引,首先调用ascending()构建器方法,创建一个代表索引文档的Bson
实例,传入您想要索引的字段名称。然后,在集合上调用createIndex()
方法,传入包含索引文档的Bson
实例。
注意
如果您在单个字段上有一个升序或降序索引,MongoDB可以使用索引按任意方向排序。
以下示例指定了在name
字段上的升序索引
Bson ascendingIndex = ascending("name"); collection.createIndex(ascendingIndex);
降序索引
降序索引允许您按索引字段的值从大到小对查询结果进行排序。
要创建降序索引,首先调用 descending() 构建器方法来创建一个表示索引文档的 Bson
实例,传递您想要索引的字段名称或名称。然后,在集合上调用 createIndex()
方法,传递包含索引文档的 Bson
实例。
以下示例指定了对 capacity
字段的降序索引
Bson descendingIndex = descending("capacity"); collection.createIndex(descendingIndex);
组合索引
为了创建一个组合索引,首先调用compoundIndex()构建器方法,创建一个代表索引文档的Bson
实例,传入要索引的字段名称。然后,在集合上调用createIndex()
方法,传入包含索引文档的Bson
实例。
以下示例指定了一个组合索引,由对capacity
和year
字段的降序索引,后面跟随对name
字段的升序索引。
Bson compoundIndexExample = compoundIndex(descending("capacity", "year"), ascending("name")); collection.createIndex(compoundIndexExample);
文本索引
文本索引将文档按照索引字段中的文本分组。
要创建文本索引,首先调用text()构建器方法,创建一个代表索引文档的Bson
实例,传入要索引的字段名称。然后,在集合上调用createIndex()
方法,传入包含索引文档的Bson
实例。
以下示例指定了在“theaters”字段上的文本索引键。
Bson textIndex = text("theaters"); collection.createIndex(textIndex);
哈希索引
哈希索引通过索引字段中的哈希值对文档进行分组。
为了创建哈希索引,首先调用 hashed() 构造函数来创建一个表示索引文档的 Bson
实例,传入你想要索引的字段名称。然后,在集合上调用 createIndex()
方法,传入包含索引文档的 Bson
实例。
以下示例指定在 capacity
字段上创建哈希索引
Bson hashedIndex = hashed("capacity"); collection.createIndex(hashedIndex);
地理空间索引
2dsphere
索引通过索引字段中的坐标对文档进行分组。
为了创建一个 2dsphere
索引,首先调用 geo2dsphere() 构建方法来创建一个表示索引文档的 Bson
实例,传递你想要索引的字段名称或名称。然后,在集合上调用 createIndex()
方法,传递包含索引文档的 Bson
实例。
以下示例在 location
字段上指定了一个 2dsphere
索引
Bson geo2dsphereIndex = geo2dsphere("location"); collection.createIndex(geo2dsphereIndex);