mongoDB数据库

mongo nosql 文档数据库使用方法
< 返回上一级

mongoDB索引

MongoDB索引使用方法

子节点:

-- 暂无子节点 --

内容:

MongoDB索引是b-tree树形结构

MongoDB索引方式
MongoDB索引是b-tree,
这种结构如果设计好的话可以快速的定位数据位置,
b-tree也是mysql数据库常用的索引结构,其相关资料比较多

MongoDB索引的类型

使用MongoDB索引必须明白的一些概念
1 排序索引类型:
ASC:1,DESC,-1
2 地理位置类型
2d :坐标对 的形式 存储位置数据
2dsphere :计算的地理数据表示为类似于地球的球形表面上的坐标
按照坐标轴、经度、纬度的方式把位置数据存储为 GeoJSON 对象。
GeoJSON 的坐标参考系使用的是 wgs84 数据

3 全文内容索引类型
text 全文索引,搜索内容片段
Hashed 哈西索引 散列索引,数据Hashed作为索引,比较内容完全匹配

参数
稀疏索引:只包含具有索引字段的文档,不包含的不索引;非索引的,不包含字段的也索引
db.collection.createlndex ({ "key" : 1 }, { sparse : true })
唯一索引,将确保数据的键值的唯一性,key不能重复出现
db.collection.createlndex ({ "key" : 1 }, { unique: true })
过期索引:
db.collection.createlndex( {"key" : 1 }, { expireAfterSeconds: 3600 })
在一定时间或特定时间后 从集合中自动 删除 过期的文档
MongoDB 是每 60s 执行一次删除操作,因此短时间内执行会出现延迟现象
例如,机器生成的事务数据、日志和会话信息,这些信息只需要在数据库中存在有限的时间,不需要长期保存

索引运行方式:选项
background,背景模式,创建索引过程不会影响查询业务



查看现有索引

查看集合上的索引:
db.collection.getlndexes() 方法
如 db.records.getIndexes() // records 为集合

列出数据库的所有索引

db.getCollectionNames().forEach(function(collection){
    indexes = db[collection].getIndexes();
    print("Indexes for " + collection + ":" );
    printjson(indexes);
});

删除索引

db.collection.dropIndexes() ; //删除集合所有索引
如:db.records.dropIndexes() // records是集合

db.collection.dropIndex()  // 删除某个索引
如:db.records.dropIndex ({ "score" : 1 }) // records是集合 ,且存在 score字段的 升序索引,不存在 则提示 无索引