索引及集合管理 - MongoDB从入门到删库

MongoTemplate提供了一些用于管理索引和集合的方法。这些方法被收集到一个名为IndexOperations的帮助接口中。您可以通过调用indexOps方法并传入集合名或实体的java.lang.Class来访问这些操作(集合名称来自 .class,或名称,或注释元数据)。

创建索引

您可以使用MongoTemplate类在集合上创建索引,以提高查询性能,还可以使用IndexDefinitionGeoSpatialIndexTextIndexDefinition类创建标准、地理空间和文本索引。

mongoTemplate.indexOps(Person.class).ensureIndex(new Index().on("name",Order.ASCENDING));

mongoTemplate.indexOps(Venue.class).ensureIndex(new GeospatialIndex("location"));

访问索引信息

IndexOperations接口具有getIndexInfo方法,该方法返回IndexInfo对象的列表。此列表包含在集合上定义的所有索引。下面的例子定义了Person类上具有age属性的索引:

template.indexOps(Person.class).ensureIndex(new Index().on("age", Order.DESCENDING).unique());

List<IndexInfo> indexInfoList = template.indexOps(Person.class).getIndexInfo();

// Contains
// [IndexInfo [fieldSpec={_id=ASCENDING}, name=_id_, unique=false, sparse=false],
//  IndexInfo [fieldSpec={age=DESCENDING}, name=age_-1, unique=true, sparse=false]]

处理集合的方法

下面的例子展示了如何创建一个集合:

MongoCollection<Document> collection = null;
// 返回一组集合名称
if (!mongoTemplate.getCollectionNames().contains("MyNewCollection")) {
    // 创建无上限集合。
    collection = mongoTemplate.createCollection("MyNewCollection");
}
// 删除集合
mongoTemplate.dropCollection("MyNewCollection");

// collectionExists:检查具有给定名称的集合是否存在。
// getCollection:按名称获取集合,如果该集合不存在则创建该集合。
    原文作者:DreamsonMa
    原文地址: https://www.jianshu.com/p/986026183058
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞