MongoDB上的索引

1. 将索引建在number键上名为nameIndex并且为正序索引({number:-1}为倒序索引) 如: db.list名.ensureIndex({number:1},{name:"nameIndex"}) ;

2. 在查询时指定使用一个正序索引则调hint() 例如:db.list名.find({age:{$lte:56}},{name:1,_id:0}).hint({name:1});

3. 在查询时我们究竟使用了哪个索引  如:db.list名.find({age:{$lte:56}}).explain();即可打印出所使用的索引信息;

4. 建立索引有时很消耗性能那么我们可以将其在后台执行使用 db.list名.ensureIndex({number:1},{background:true}) ;

5.创建唯一索引,其含义就是该索引的每个键对应的值的内容不可以有重复 如:db.list名.ensureIndex({number:1},{unique:true,dropDups:true});即可                              dropDups:true控制如有重复就将其删除(可选)***但唯一索引的意义并不大***;

6.删除指定的索引(name_-1为索引名) 如:db.runCommand({dropIndexes:"list名",index:"name_-1"});即可完成索引的删除,或直接使用db.list名.drop(); 也可;

若想删除全部索引  如:db.runCommand({dropIndexes:"list名",index:"*"});即可;

时间: 2024-10-06 06:37:19

MongoDB上的索引的相关文章

MongoDB的学习--索引类型和属性

索引类型 MongDB的索引分为以下几种类型:单键索引.复合索引.地理空间索引.全文本索引和哈希索引 单键索引(Single Field Indexes) 在一个键上创建的索引就是单键索引,单键索引是最常见的索引,如MongoDB默认创建的_id的索引就是单键索引. 例子: { "_id" : ObjectId(...), "name" : "Alice", "score" : 27 } 如果要在如上的文档中创建单键索引,语句

2、MongoDB学习之索引的管理

目标:实现索引的创建.查询.删除.explan管理等操作 环境: > db.version() 3.4.7 索引创建满足的基本需求: 1:索引提高查询速度 2:在mongodb中,索引可以按自动列升序/降序来创建,便于排序 3:默认是用btree来组织索引文件,2.4版本以后,也允许建立hash索引 管理索引常用到的语法有: db.c1.createIndex(keypattern[,options])    #keypattern表示索引匹配的字段列,例如name:1 表示那么列升序建立索引,

MongoDB 基础(三)mongodb 中的索引使用

MongoDB中的索引和其他数据库索引类似,也是使用B-Tree结构.MongoDB的索引是在collection级别上的,并且支持在任何列或者集合内的文档的子列中创建索引. 下面是官方给出的一个使用索引查询和排序的一个结构图. 所有的MongoDB集合默认都有一个唯一索引在字段"_id"上,如果应用程序没有为 "_id"列定义一个值,MongoDB将创建一个带有ObjectId值的列.(ObjectId是基于 时间.计算机ID.进程ID.本地进程计数器 生成的)

MongoDB数据模型和索引学习总结

MongoDB数据模型和索引学习总结 1. MongoDB数据模型: MongoDB数据存储结构: MongoDB针对文档(大文件採用GridFS协议)採用BSON(binary json,採用二进制编码)数据格式来存储和交换数据.Bson吸收了JSON schema-less的特点,存储结构松散,不须要像RDB(关系数据)那样事先定义数据存储的元数据结构.另外添加了多种数据类型的支持和优化,使读写更加高效. (1) BSON 支持的数据类型: Double.String.Object.Arra

MongoDB整理笔记の索引

MongoDB 提供了多样性的索引支持,索引信息被保存在system.indexes 中,且默认总是为_id创建索引,它的索引使用基本和MySQL 等关系型数据库一样.其实可以这样说说,索引是凌驾于数据存储系统之上的另一层系统,所以各种结构迥异的存储都有相同或相似的索引实现及使用接口并不足为奇. 基础索引 在字段age 上创建索引,1(升序);-1(降序) > db.t3.ensureIndex({age:1}) > db.t3.getIndexes(); [ { "name&quo

mongodb的地理位置索引

mongoDB支持二维空间索引,使用空间索引,mongoDB支持一种特殊查询,如某地图网站上可以查找离你最近的咖啡厅,银行等信息.这个使用mongoDB的空间索引结合特殊的查询方法很容易实现.前提条件:建立空间索引的key可以使用array或内嵌文档存储,但是前两个elements必须存储固定的一对空间位置数值.如 { loc : [ 50 , 30 ] }{ loc : { x : 50 , y : 30 } }{ loc : { foo : 50 , y : 30 } }{ loc : {

使用NOSQL的MongoDB时建立索引需要注意的几点建议和Explain优化分析

第一,MongoDB索引和MySQL索引非常相似并且对于MySQL的索引优化有很多也适用于MongoDB. 第二,更重要的是,这些索引的建立对你的应用提高也是有限的. 对于应用的最佳索引策略应该基于很多的重要因素.包含了你期望查询的类型, 数据读取与写入的比率,甚至于你服务器的空闲内存.意思就是, 需要对线上的产品做很多的测试剖析工作,才能调整出最佳的索引策略. 没有什么好的方法可以替代实际经验的. 索引策略 下面有些索引的基本法则 创建的索引要匹配查询. 如果你仅仅要查询单个字段.索引这个字段

mongodb学习(六)索引

准备工作: 先插入100万条数据 for(i=0;i<=1000000;i++){ db.users.insert({ "i":i, "username":"user"+i, "age":Math.floor(Math.random()*120), "created":new Date() }) } 1. 创建索引: 数据量越大创建索引时间越长 db.users.ensureIndex({"

深入理解MongoDB的复合索引

更新时间:2018年03月26日 10:17:37   作者:Fundebug    我要评论 对于MongoDB的多键查询,创建复合索引可以有效提高性能.这篇文章主要给大家介绍了关于MongoDB复合索引的相关资料,文中通过示例代码介绍的非常详细,对大家的学习 为什么需要索引? 当你抱怨MongoDB集合查询效率低的时候,可能你就需要考虑使用索引了,为了方便后续介绍,先科普下MongoDB里的索引机制(同样适用于其他的数据库比如mysql). ? 1 2 3 4 5 6 mongo-9552: