Learn Mongodb DB功能命令索引等搜索 ⑤

这篇具有很好参考价值的文章主要介绍了Learn Mongodb DB功能命令索引等搜索 ⑤。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

Learn Mongodb DB功能命令索引等搜索 ⑤

@作者 : SYFStrive

 
Learn Mongodb DB功能命令索引等搜索 ⑤

@博客首页 : HomePage

📜: PHP MYSQL

📌:个人社区(欢迎大佬们加入) 👉:社区链接🔗

📌:觉得文章不错可以点点关注 👉:专栏连接🔗


Learn Mongodb DB功能命令索引等搜索 ⑤
Learn Mongodb DB功能命令索引等搜索 ⑤

👉 VUEJS(🔥)
👉 MYSQL(🔥)
👉 微信小程序(🔥)
👉 MONGODB(🔥)
👉 UNIAPP开发(🔥)

                    ⡖⠒⠒⠒⠤⢄⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢸   ⠀⠀⠀⡼⠀⠀⠀⠀ ⠀
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢶⣲⡴⣗⣲⡦⢤⡏⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣰⠋⠉⠉⠓⠛⠿⢷⣶⣦⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢠⠇⠀⠀⠀⠀⠀⠀⠘⡇⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⡞⠀⠀⠀⠀⠀⠀⠀⢰⠇⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠀⡴⠊⠉⠳⡄⠀⢀⣀⣀⡀⠀⣸⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⢸⠃⠀⠰⠆⣿⡞⠉⠀⠀⠉⠲⡏⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠈⢧⡀⣀⡴⠛⡇⠀⠈⠃⠀⠀⡗⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠀⠀⣿⣱⠃⡴⠙⠢⠤⣀⠤⡾⠁⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠀⢀⡇⣇⡼⠁⠀⠀⠀⠀⢰⠃⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠀⣸⢠⣉⣀⡴⠙⠀⠀⠀⣼⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠀⡏⠀⠈⠁⠀⠀⠀⠀⢀⡇⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⢸⠃⠀⠀⠀⠀⠀⠀⠀⡼⠀⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⢸⠀⠀⠀⠀⠀⠀⠀⣰⠃⠀⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⣀⠤⠚⣶⡀⢠⠄⡰⠃⣠⣇⠀⠀⠀⠀⠀⠀⠀⠀⠀
⠀⢀⣠⠔⣋⣷⣠⡞⠀⠉⠙⠛⠋⢩⡀⠈⠳⣄⠀⠀⠀⠀⠀⠀⠀
⠀⡏⢴⠋⠁⠀⣸⠁⠀⠀⠀⠀⠀ ⠀⣹⢦⣶⡛⠳⣄⠀⠀⠀⠀⠀
⠀⠙⣌⠳⣄⠀⡇   不能   ⡏⠀⠀  ⠈⠳⡌⣦⠀⠀⠀⠀
⠀⠀⠈⢳⣈⣻⡇   白嫖 ⢰⣇⣀⡠⠴⢊⡡⠋⠀⠀⠀⠀
⠀⠀⠀⠀⠳⢿⡇⠀⠀⠀⠀⠀⠀⢸⣻⣶⡶⠊⠁⠀⠀
⠀⠀⠀⠀⠀⢠⠟⠙⠓⠒⠒⠒⠒⢾⡛⠋⠁⠀⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⣠⠏⠀⣸⠏⠉⠉⠳⣄⠀⠙⢆⠀⠀⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⡰⠃⠀⡴⠃⠀⠀⠀⠀⠈⢦⡀⠈⠳⡄⠀⠀⠀⠀⠀⠀⠀
⠀⠀⣸⠳⣤⠎⠀⠀⠀⠀⠀⠀⠀⠀⠙⢄⡤⢯⡀⠀⠀⠀⠀⠀⠀
⠀⠐⡇⠸⡅⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠹⡆⢳⠀⠀⠀⠀⠀⠀
⠀⠀⠹⡄⠹⡄⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣇⠸⡆⠀⠀⠀⠀⠀
⠀⠀⠀⠹⡄⢳⡀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢹⡀⣧⠀⠀⠀⠀⠀
⠀⠀⠀⠀⢹⡤⠳⡄⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⣷⠚⣆⠀⠀⠀⠀
⠀⠀⠀⡠⠊⠉⠉⢹⡀⠀⠀⠀⠀⠀⠀⠀⠀⢸⡎⠉⠀⠙⢦⡀⠀
⠀⠀⠾⠤⠤⠶⠒⠊⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠉⠙⠒⠲⠤⠽   

提示:以下是本篇文章正文内容

MongoDB简介

MongoDB是由C++语言编写的,是一个介于 关系数据库非关系数据库之间的产品,是非关系数据库当中功能最丰富,最像关系数据库的。 它支持的 数据结构 非常松散,是类似 json 的 bson 格式,因此可以存储比较复杂的 数据类型 。MongoDB用起来快速上手&集群和安全系列。

⭐MongoDB使用功能

📕 分页列表查询

代码演示

说明 :可以使用limit()方法来读取指定数量的数据,使用skip()方法来跳过指定数量的数据。
db.Collection.find().limit(n).skip((n-1)*n)

如果你想返回指定条数的记录,可以在find方法后调用limit来返回结果(TopN)
db.Collection.find().limit(3)

skip方法同样接受一个数字参数作为跳过的记录条数。(前N个不要),默认值是0
db.Collection.find().skip(3)

提示 skip(), limilt(), sort()三个放在一起执行的时候,执行的顺序是先 sort(), 然后是 skip(),最后是显示的 limit(),和命令编写顺序无关。

⭐索引 ~ Index

  • 说明 : 索引支持在MongoDB中高效地执行查询。如果没有索引,MongoDB必须执行全集合扫描,即扫描集合中的每个文档,以选择与查询语句匹配的文档。这种扫描全集合的查询效率是非常低的,特别在处理大量的数据时,查询可以要花费几十秒甚至几分钟,这对网站的性能是非常致命的。

  • 如果查询存在适当的索引,MongoDB可以使用该索引限制必须检查的文档数。

  • 索引是特殊的数据结构,它以易于遍历的形式存储集合数据集的一小部分。索引存储特定字段或一组字段的值,按字段值排序。索引项的排序支持有效的相等匹配和基于范围的查询操作。此外MongoDB还可以使用索引中的排序返回排序结果。

  • 索引链接 : https://docs.mongodb.com/manual/indexes

  👉 索引的类型

  • 单字段索引
  1. MongoDB支持在文档的单个字段上创建用户定义的升序/降序索引,称为单字段索引(Single Field Index)。
  2. 对于单个字段索引和排序操作,索引键的排序顺序(即升序或降序)并不重要,因为MongoDB可以在任何方向上遍历索引。

图示

Learn Mongodb DB功能命令索引等搜索 ⑤

  • 复合索引
  1. MongoDB还支持多个字段的用户定义索引,即复合索引(Compound Index)。
  2. 复合索引中列出的字段顺序具有重要意义。例如,如果复合索引由 { userid: 1, score: -1 }组成,则索引首先按userid正序排序,然后在每个userid的值内,再在按score倒序排序。

图示
Learn Mongodb DB功能命令索引等搜索 ⑤

  👉 索引的管理操作

  • 索引的查看

    1. 说明:返回一个集合中的所有索引的数组。
    2. 语法:db.collection.getIndexes() *MongoDB 3.0+
    3. 默认_id索引 : MongoDB在创建集合的过程中,在 _id字段上创建一个唯一的索引,默认名字为 id,该索引可防止客户端插入两个具有相同值的文档,您不能在_id字段上删除此索引。
    4. 注意:该索引是唯一索引,因此值不能重复,即 _id值不能重复的。在分片集群中,通常使用 _id作为片键。
  • 索引的创建

    1. 说明:在集合上创建索引。
    2. 语法:db.collection.createIndex(keys, options)
    3. 提示:3.0.0 版本前创建索引方法为 db.collection.ensureIndex() ,之后的版本使用了 db.collection.createIndex() 方法,ensureIndex() 还能用,但只是 createIndex() 的别名。
    4. 参数
Parameter Type Description
keys document 包含字段和值对的文档,其中字段是索引键,值描述该字段的索引类型。对于字段上的升序索引,请指定值1;对于降序索引,请指定值 - 1。比如: { 字段: 1或 - 1 } ,其中1 为指定按升序创建索引,如果你想按降序来创建索引指定为 - 1 即可。另外,MongoDB支持几种不同的索引类型,包括文本、地理空间和哈希索引。
options document 可选。包含一组控制索引创建的选项的文档。有关详细信息,请参见选项详情列表。
  1. 代码演示
单字段索引示例:对 userid 字段建立索引
db.collection.createIndex({userid:1})

复合索引 对 userid 和 nickname 同时建立复合(Compound)索引
db.collection.createIndex({userid:1,nickname:-1})

db.collection.getIndexes()
  • 索引的移除

说明:可以移除指定的索引,或移除所有索引

  1. 指定索引的移除

    1、语法 :db.collection.dropIndex(index)
    2、参数 : 指定要删除的索引。可以通过索引名称或索引规范文档指定索引。若要删除文本索引,请指定索引名称。

  2. 所有索引的移除

    1、语法 :db.collection.dropIndexes()
    2、参数 : 指定要删除的索引。可以通过索引名称或索引规范文档指定索引。若要删除文本索引,请指定索引名称。

  👉 索引的使用

说明:分析查询性能(Analyze Query Performance)通常使用执行计划(解释计划、Explain Plan)来查看查询的情况,如查询耗费的时间、是否基于索引查询等。

  • 语法

db.collection.find(query,options).explain(options)

  • 使用过程 演示 ↓
db.createCollection("InDetail")
db.InDetail.insert({name:"小红",age:18,sex:"女",hobby:"喜欢运运动"})
db.InDetail.createIndex({userID:5})
db.InDetail.find({userID:5}).explain()

结果 ↓

Learn Mongodb DB功能命令索引等搜索 ⑤

  • 关键看 “stage” 属性

    1. 属性为"COLLSCAN", 表示全集合扫描
    2. 属性为"FETCH", 表示索引扫描

  👉 涵盖的查询用

说明 : 当查询条件和查询的投影仅包含索引字段时,MongoDB直接从索引返回结果,而不扫描任何文档或将文档带入内存。 这些覆盖的查询可以
非常有效。

官方链接 : https://docs.mongodb.com/

图解

Learn Mongodb DB功能命令索引等搜索 ⑤

  • 使用过程 演示 ↓
db.createCollection("InDetail")
db.InDetail.insert({userID:5,name:"小红",age:18,sex:"女",hobby:"喜欢运运动"})
db.InDetail.find({userID:5},{userID:1,_id:0}) → { "userID" : 5 }
db.InDetail.find({userID:5},{userID:1,_id:0}).explain()

结果 ↓

Learn Mongodb DB功能命令索引等搜索 ⑤

总结

以上是个人学习Mongodb的相关知识点,一点一滴的记录了下来,有问题请评论区指正,共同进步,这才是我写文章的原因之,如果这篇文章对您有帮助请三连支持一波👍文章来源地址https://www.toymoban.com/news/detail-515196.html

到了这里,关于Learn Mongodb DB功能命令索引等搜索 ⑤的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 学习笔记-MongoDB(命令增删改查,聚合,权限管理,索引,java使用)

    基础概念 1 什么是mogodb? MongoDB 是一个基于分布式文件/文档存储的数据库,由 C++ 编写,可以为 Web 应用提供可扩展、高性能、易部署的数据存储解决方案。MongoDB 是一个介于关系数据库和非关系数据库之间的产品,是非关系数据库中功能最丰富、最像关系数据库的。 MongoDB

    2024年02月08日
    浏览(29)
  • DB索引&B+树&SQL优化

    数据库的索引就像一本书的目录,查数据快人一步,快速定位,精准打击! 官方介绍索引是帮助MySQL高效获取数据的数据结构。更通俗的说,数据库索引好比是一本书前面的目录,能加快数据库的查询速度。 一般来说索引本身也很大,不可能全部存储在内存中,因此索引往往

    2024年04月28日
    浏览(21)
  • ElasticSearch篇——Restful风格详解以及常见的命令,涵盖_cat命令查看ES默认数据、索引和文档的增删改查以及复杂搜索,超详细、超全面、超细节!

    一种软件架构风格,而不是标准,只是提供了一组设计原则和约束条件。它主要是用于客户端和服务器交互类的软件。基于这个风格设计的软件可以更加简洁,更有层次,更易于实现缓存等机制。 一、基本Rest命令说明 1、命令 对应的就是head可视化界面的下面的信息(换句话

    2024年01月16日
    浏览(32)
  • [HarmonyOS]通过adb调试命令彻底关闭鸿蒙服务中心与智慧搜索等功能

    鸿蒙手机(华为手机和部分荣耀手机机型)的服务中心很容易手滑从右下角呼出,给用户带来不少麻烦,可惜普通用户只能停用该功能,但还是能从右下角呼出。智慧搜索也会有误触的情况,且找不到关闭的地方。 本文介绍通过在电脑上解压Android SDK Platform-tools文件后,在

    2024年02月05日
    浏览(38)
  • 【MongoDB】索引 - 单字段索引

    MongoDB支持在集合文档中的任意字段上创建索引,默认情况下所有的集合都有一个_id字段的索引,用户和应用可以新增索引用于查询和操作。 这里准备一些学生数据 上面我们查询了students集合中的索引列表 查询结果如下: 默认情况下,students集合中存在一个_id字段的索引;

    2024年02月05日
    浏览(27)
  • 【MongoDB】索引 – 文本索引

    这里准备一些数据 上面创建了description字段的文本索引 结果如下: 可以看到多了一个名称为description_text的索引;另外可以看到索引中有权重(weights)、默认语言(default_language)、指定语言字段(language_override)、文本索引版本(textIndexVersion) 结果如下: 结果如下: 可以

    2024年02月05日
    浏览(34)
  • 【MongoDB】索引 - 复合索引

    这里准备一些学生数据 上面创建了age、name字段的复合索引,其中1代表的是正序排序,-1代表的是倒序排序 复合查询中可以定义多个字段(最多不能超过32个字段)作为索引,但是在查询时只有使用携带第一个索引字段作为查询条件时才会使用当前索引 结果如下: 可以看到多

    2024年02月05日
    浏览(28)
  • 构建搜索引擎,而非向量数据库(Vector DB) [译]

    作者: Panda Smith 在过去 12 个月中,我们见证了向量数据库(Vector DB)创业公司的迅猛增长。我此刻并不打算深入探讨它们各自的设计取舍。相反,我更想探讨和解释一些关于向量数据库的常见理解——它是什么、它的功能用途,以及在解决问题时,我们应如何恰当地利用向

    2024年02月04日
    浏览(36)
  • ES映射操作 已创建的ES索引 增加映射字段(类似DB库增加给表增加字段)一样

    ES已存在的索引下添加映射 解释如下:给ticketing_order_info的索引,增加映射字段verificationCodeState,字段类型为integer 实现: PUT /ticketing_order_info/_mapping/ {     \\\"properties\\\": {         \\\"verificationCodeState\\\": {             \\\"type\\\": \\\"integer\\\"         }     } } PUT /ticketing_order_i

    2024年02月16日
    浏览(47)
  • MongoDB【五】索引

    在MongoDB中,索引对于提升查询性能至关重要,特别是针对大型数据集时。以下是如何在MongoDB中创建、查看和删除索引的基本操作,以及不同类型的索引如何影响查询性能。 升序索引(默认): 降序索引: 这将创建一个索引,首先按照 field1 升序,然后在 field1 相等的情况下

    2024年04月27日
    浏览(18)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包