【MongoDB学习笔记25】MongoDB的索引类型
发表于:2025-02-01 作者:千家信息网编辑
千家信息网最后更新 2025年02月01日,创建索引可以指定一些选项,使用不同的选项建立的索引会有不同的行为。一、唯一索引唯一索引可以确保每一个文档的指定键都有唯一的值。例如,想确定文档中的username键不重复,创建一个唯一索引:> db.
千家信息网最后更新 2025年02月01日【MongoDB学习笔记25】MongoDB的索引类型
创建索引可以指定一些选项,使用不同的选项建立的索引会有不同的行为。
一、唯一索引
唯一索引可以确保每一个文档的指定键都有唯一的值。例如,想确定文档中的username键不重复,创建一个唯一索引:
> db.users.findOne() { "_id" : ObjectId("54ad5826245d1b7d58b53238"), "i" : 2, "username" : "user2", "age" : 39, "created" : ISODate("2015-01-07T16:00:38.634Z") }
> db.users.ensureIndex({"username":1},{"unique":true}) { "createdCollectionAutomatically" : false, "numIndexesBefore" : 1, "numIndexesAfter" : 2, "ok" : 1 }
> db.users.insert({"username":"user2"}) WriteResult({ "nInserted" : 0, "writeError" : { "code" : 11000, "errmsg" : "insertDocument :: caused by :: 11000 E11000 duplicate key error index: blog.users.$username_1 dup key: { : \"user2\" }" } }) >
可以看出创建唯一索引后,就不能插入相同的键值;
1.唯一复合索引
创建唯一复合索引,复合索引的单键值可以重复,但是组成唯一复合索引的组合键值只能唯一。例如:
如果有一个{"username":"user2","age":18}有唯一的索引,下面的插入是合法的,
>db.users.insert({"username":"bob"})>db.users.insert({"username":"bob","age":23})>db.users.insert({"username":"fred","age":23})
如果再次插入这三项中的任意一个,会导致键重复异常;
2.去重复
对于已经有重复值的字段上创建唯一索引,会引起错误;可以使用dropDups选项遇到重复值会保留第一个,删除其他重复项;
>db.users.ensureIndex({"username":1},{"unique":true,"dropDups":true})
慎用这个选项,因为根本没有办法控制删除哪些文档;
二、稀疏索引
如果有一个可能存在也有可能不存在的字段,在此字段上创建的索引称为稀疏索引。
创建唯一稀疏索引:
>db.users.ensureIndex({"username":1},{"unique":true,"sparse":true})
创建非唯一稀疏索引:
>db.users.ensureIndex({"username":1},{"sparse":true})
索引
稀疏
字段
文档
不同
合法
相同
再次
办法
单键
根本
行为
错误
面的
非唯
控制
组合
笔记
类型
学习
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
网络安全生产工作情况报告
如何查询iis管理服务器
bim软件开发企业
一加9r手机支持谷歌服务器吗
数据库中的增删改查怎么操作
在数据库中查询时间条件
网络安全知识有奖竞答题库
西藏智慧党建软件开发
数据库中字符串大全
网站服务器开发技术栈
手机版方舟服务器如何刷琥珀
网络安全教育图片手抄报
网络技术属于计算机的应用领域
金仓数据库服务启动后停止
传奇数据库的工具
网络技术初步 教案
实用科研数据库挖掘
安仁计算机软件开发
服务器版
戴尔r560服务器
西安网络安全监察部
dao jet数据库引擎
中卫库勾网络技术有限公司
景洪gpu云服务器价格
浪潮ai服务器为什么这么便宜
软件开发专业n
安卓自动试玩软件开发
外企软件开发公司工资待遇
深圳网盒互联网科技
青少年涉及网络安全事件