mongodb[七]索引

介绍:

        索引在很多数据库中是提高性能的标志优化手段,所以在大数据量的情况下索引可以提高数据的查询速度,如果没有索引mongodb会扫描全部数据,才能获取满足条件的内容,在关系数据库中可以使用强制索引方式查询数据库,确保更准确快速的查询到满足条件的数据。

语法:

        1、ensureIndex()  基本语法  1 创建升序索引  -1创建降序索引

        2、mongodb 默认所以字段  _id ,创建文档,会自动创建,此索引不能删除由mongodb自己维护

相关参数:

        1、unique 创建唯一索引,默认false ,true必须唯一索引,否则报错

实例:

        1、创建升序索引

                  db.user.ensureIndex({age:1});

                db.user.find({age:{$gte:20}});

        2、创建唯一索引,如果文档中有指定列存在字段数据有重复,不能够创建索引

                db.user.find();

                  创建唯一索引失败

                删除重复记录,继续创建唯一索引

时间: 2024-08-21 07:38:04

mongodb[七]索引的相关文章

pymongo给mongodb创建索引的简单实现方法

  这篇文章主要介绍了pymongo给mongodb创建索引的简单实现方法,涉及Python使用pymongo模块操作mongodb的技巧,需要的朋友可以参考下 下面的代码给user的user_name字段创建唯一索引 ? 1 2 3 4 import pymongo mongo = pymongo.Connection('localhost') collection = mongo['database']['user'] collection.ensure_index('user_name',

mondodb-C#声明一个mongodb地理位置索引,并修改索引范围

问题描述 C#声明一个mongodb地理位置索引,并修改索引范围 默认情况下,mongodb地理空间索引假定你在索引经度/维度,并且这些值的范围是[-180180].但是我的坐标是大地坐标,不是经纬度,怎么在C#声明一个mongodb地理位置索引,并修改索引范围?shell是这样修改的:db.places.ensureIndex( { loc : ""2d"" } { min : -500 max : 500 } ) 解决方案 这里有现成的http://blog.c

数据-mongodb创建索引后过段时间就消失了?

问题描述 mongodb创建索引后过段时间就消失了? 对A,B两个集合同时创建两组复合索引,索引字段都才4个,创建成功后查询速度比原来快多了.过一天后查询看发现A集合又慢了,发现A集合的复合索引没有了,B集合的索引还在.(A集合数据比较大一大) 给A重新创建了几次索引,都是过段时间索引就自动消失了.要重新创建.求解啊 解决方案 这个应该不会主动消失 是不是倒入数据的时候又覆盖索引 解决方案二: 这个不应该把,索引创建了,只有有人删除了,才会没有. 不太可能说没人删除,就自动没有了,那mongod

MongoDB 复合索引

MongoDB支持复合索引,即将多个键组合到一起创建索引.该方式称为复合索引,或者也叫组合索引,该方式能够满足多键值匹配查询使用索引的情形.其次复合索引在使用的时候,也可以通过前缀法来使用索引.MongoDB中的复合索引与关系型数据库基本上一致.在关系型数据库中复合索引使用的一些原则同样适用于MongoDB.本文主要描述MongoDB复合索引. 一.复合索引相关概述 1.复合索引创建语法 db.collection.createIndex( { <field1>: <type>,

MongoDB 唯一索引

MongoDB支持的索引种类很多,诸如单键索引,复合索引,多键索引,TTL索引,文本索引,空间地理索引等.同时索引的属性可以具有唯一性,即唯一索引.唯一索引用于确保索引字段不存储重复的值,即强制索引字段的唯一性.缺省情况下,MongoDB的_id字段在创建集合的时候会自动创建一个唯一索引.本文主要描述唯一索引的用法. 一.创建唯一索引语法 //语法 db.collection.createIndex( <key and index type specification>, { unique:

MongoDB的索引代码实现--BtreeBasedAccessMethod

MongoDB的索引代码实现--BtreeBasedAccessMethod 前言 学习开源软件的最好的办法就是阅读代码,MongoDB整个代码库有接近90万行代码,DB核心层大概50万行,代码量确实非常多.本文作为MongoDB代码导读的第一篇,从Index部分上入手分析代码实现.为何从索引部分开始介绍,首先代码量较少,总共5000多行,且相对其他模块来说比较独立:其次索引对数据库的优化至关重要,了解其实现,对日后的运维优化和索引自身的限制约定都具有实际意义.毕竟文档上的描述还是没有代码来的准

MongoDB 部分索引(Partial Indexes)

MongoDB部分索引只为那些在一个集合中,满足指定的筛选条件的文档创建索引.由于部分索引是一个集合文档的一个子集,因此部分索引具有较低的存储需求,并降低了索引创建和维护的性能成本.部分索引通过指定过滤条件来创建,可以为MongoDB支持的所有索引类型使用部分索引. 一.语法描述 创建部分索引语法 db.collection.createIndex(keys, options) options可以使用partialFilterExpression,即部分过滤表达式,其类型为文档类型 过滤表达式通

mongoDB的索引

  索引通常能够极大的提高查询的效率.在系统中使用查询时,应该考虑建立相关的索引. 索引是一种数据结构,他搜集一个集合中文档特定字段的值.MongoDB的查询优化器能够 使用这种数据结构来快速的对集合(collection)中的文档(collection)进行寻找和排序, 准确来说,这些索引是通过B-Tree索引来实现的. 1.创建简单索引 数据准备index.js,创建books文档并插入200000条数据,如下: for(var i=0;i<200000;i++){ db.books.ins

MongoDB TTL索引

TTL索引是一种特殊类型的单字段索引,主要用于当满足某个特定时间之后自动删除相应的文档.也就是说集合中的文档有一定的有效期,超过有效期的文档就会失效,会被移除.也即是数据会过期.过期的数据无需保留,这种情形适用于如机器生成的事件数据,日志和会话信息等等.本文主要描述TTL索引的使用. 一.TTL索引 创建方法 db.collection.createIndex(keys, options) options: expireAfterSeconds 指定多少秒或者包含日期值的数组 创建示例 db.e