美文网首页
索引及集合管理 - MongoDB从入门到删库

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

作者: DreamsonMa | 来源:发表于2019-01-31 15:51 被阅读0次

    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:按名称获取集合,如果该集合不存在则创建该集合。
    

    相关文章

      网友评论

          本文标题:索引及集合管理 - MongoDB从入门到删库

          本文链接:https://www.haomeiwen.com/subject/pxzksqtx.html