在这一章节中,我们来学习高级索引,假设users集合的以下文档 -

{

"address": {

"city": "Haikou",

"province": "Hainan",

"pincode": "123456"

},

"tags": [

"music",

"cricket",

"blogs"

],

"name": "Maxsu"

}

上述文档包含地址子文档和标签数组。

索引数组字段

假设要根据用户的标签搜索用户文档。为此,我们将在集合中的tags数组上创建一个索引。

在数组上创建一个索引依次为每个字段创建单独的索引条目。所以在这个例子中,当在tags数组上创建一个索引时,将为其值music,cricket和blogs创建单独的索引。

要在tags数组上创建索引,请使用以下代码 -

>db.users.ensureIndex({"tags":1})

创建索引后,可以搜索这个集合的标签字段 -

>db.users.find({tags:"cricket"})

要验证是否使用正确的索引,请使用以下说明命令 -

>db.users.find({tags:"cricket"}).explain()

上面的命令生成:“cursor”:“BtreeCursor tags_1”,它确认使用了正确的索引。

索引子文档字段

假设要搜索基于city,province和pincode字段的文档。 由于所有这些字段都是地址子文档字段的一部分,因此将在子文档的所有字段上创建一个索引。

要在子文档的所有三个字段上创建索引,请使用以下代码 -

>db.users.ensureIndex({"address.city":1,"address.state":1,"address.pincode":1})

创建索引后,就可以使用此索引来搜索任何子文档的字段了,如下所示:

>db.users.find({"address.city":"Haikou"})

请记住,查询表达式必须遵循指定的索引的顺序。 所以上面创建的索引将支持以下查询 -

>db.users.find({"address.city":"Haikou","address.province":"Hainan"})

它还将支持以下查询 -

>db.users.find({"address.city":"Haikou","address.province":"Hainan",

"address.pincode":"12345"})

mongodb索引生成HTML页面,MongoDB高级索引相关推荐

  1. mongodb索引生成HTML页面,mongodb高阶:索引创建、聚合查询、复制集、分片、创建备份和部署...

    先前我们讨论了mongodb的进阶查询:投影查询.分页查询以及对查询结果进行排序,从本节起我们开始学习mongodb相关的高级技术,首先我们会讨论mongodb如何创建索引,索引是数据库中最重要的东西 ...

  2. [教程]MongoDB 从入门到进阶 (概要 以及 高级索引篇 TimeToLive GeoNear)

    MongoDB概要 [关于MongoDB] 官方网站: www.mongodb.com MongoDB属于比较典型的NoSql数据库.和Relationship数据库相比,其数据属于文档结构. 最新版 ...

  3. mongodb基础操作之聚合操作、索引优化

    mongodb基础操作之聚合操作.索引优化 更好的阅读体验 https://www.wolai.com/wrMtYWKdkzKYjoWM1i64qu 目录 聚合操作 聚合管道操作 Map-Reduce ...

  4. mongodb固定集合(Capped Collections) | MongoDB 自动删除集合中过期的数据——TTL索引

    文章目录 mongodb固定集合(Capped Collections) 一.什么是mongodb固定集合(Capped Collections) 二.Capped Collections使用场景 三 ...

  5. Mysql InnoDB B+树索引和哈希索引的区别? MongoDB 为什么使用B-树?

    B-树和B+树最重要的一个区别就是B+树只有叶节点存放数据,其余节点用来索引,而B-树是每个索引节点都会有Data域. B+树 B+树是为磁盘及其他存储辅助设备而设计一种平衡查找树(不是二叉树).B+ ...

  6. mongodb 对象唯一索引_什么是MongoDB?简介,架构,功能和示例

    通过这个教程,我们将学习如下内容:- 什么是MongoDB? MongoDB功能 MongoDB示例演示 MongoDB架构的关键组件 为什么要使用MongoDB MongoDB中的数据建模 Mong ...

  7. mongo 唯一约束索引_快速掌握mongoDB(三)——mongoDB的索引详解

    1 mongoDB索引的管理 本节介绍mongoDB中的索引,熟悉mysql/sqlserver等关系型数据库的小伙伴应该都知道索引对优化数据查询的重要性.我们先简单了解一下索引:索引的本质就是一个排 ...

  8. MongoDb 大数据查询优化、 MongoDB 索引、复合索引、唯一索引、 explain 分 析查询速度

    一.索引基础 索引是对数据库表中一列或多列的值进行排序的一种结构,可以让我们查询数据库变得 更快. MongoDB 的索引几乎与传统的关系型数据库一模一样,这其中也包括一些基本的查询优化技巧. 下面是 ...

  9. MongoDB教程——第3天(性能——索引)

    目录 介绍 背景 索引 默认索引 如何创建索引 MongoDB中不同类型的索引 1. 单字段索引 2. 复合索引 3. 多键索引 4. 文字索引 MongoDB索引属性 1. Unique 2. Sp ...

最新文章

  1. 由于stdin不是终端,因此不会分配伪终端
  2. [LeetCode] 5. Longest Palindromic Substring
  3. jsoncpp 库的使用方法
  4. java有 号_JAVA揭竿而起总要有名号
  5. 深入理解Three.js(WebGL)贴图(纹理映射)和UV映射
  6. 北京联合大学计算机学院在哪个校区,北京联合大学各校区联系地址大全
  7. input失去焦点验证格式_vue2多文本框的表单校验(3)-失去焦点触发校验
  8. RWMutex的一道面试题
  9. 如果编程语言是女孩,你最喜欢哪一个?
  10. 在 linux 下安装 Mysql 的详细过程
  11. 主机cpu突然飙高,如何快速排查问题
  12. 尚硅谷Java入门视频教程(一)编程入门
  13. 三组计算机局域网组网方案,多种方式组建家庭局域网
  14. 基于深度学习的身份证号码识别方法
  15. 极速扫描器 masscan
  16. 从零开始学JavaScript——基础篇
  17. pandas数据分组与聚合
  18. GY-BMP280-3.3 高精度大气压强传感器模块
  19. react navigation 中使用goBack()跳转到指定页面
  20. CPP全面总结(涵盖C++11标准)

热门文章

  1. Windows窗体的所有菜单
  2. 第二阶段 铁大Facebook——十天冲刺(七)
  3. mysql查询日期内的所有日期代码
  4. golang 获取api 数据
  5. 利用Python进行数据分析 Note 1
  6. IOS应用之二--sqlite的创建数据库,表,插入查看数据
  7. 将多个文件的属性添加到数据库
  8. 离开域后打开Office慢 Openfiler
  9. VS2008中的“解决方案配置”和“解决方案平台”不见了(Release和Debug)的解决方法...
  10. 用标号跳出当前多重嵌套循环是否继续执行循环_4、在JAVA中如何跳出当前的多重嵌套循环?-Java面试题答案...