首页 > 数据库 >无涯教程-MongoDB - 覆盖查询

无涯教程-MongoDB - 覆盖查询

时间:2023-11-04 15:32:03浏览次数:54  
标签:教程 name MongoDB 无涯 查询 索引 gender users

在本章中,无涯教程将学习涵盖的查询。

Covered查询

根据官方的MongoDB文档,涵盖的查询是以下查询-

  • 查询中的所有字段都是索引的一部分。
  • 查询中返回的所有字段都在同一索引中。

由于查询中存在的所有字段都是索引的一部分,因此MongoDB会匹配查询条件,并使用相同的索引返回输出,而无需实际查看文档内部。由于索引存在于RAM中,因此与通过扫描文档获取数据相比,从索引获取数据要快得多。

要测试涵盖的查询,请考虑 users 集合中的以下文档-

{
   "_id": ObjectId("53402597d852426020000002"),
   "contact": "987654321",
   "dob": "01-01-1991",
   "gender": "M",
   "name": "Tom Benzamin",
   "user_name": "tombenzamin"
}

无涯教程将首先使用以下查询在 gender 和 user_name 字段上为 users 集合创建复合索引-

>db.users.ensureIndex({gender:1,user_name:1})

现在,该索引将涵盖以下查询-

>db.users.find({gender:"M"},{user_name:1,_id:0})

也就是说,对于上面的查询,MongoDB不会去研究数据库文档。相反,它将从索引数据中获取所需数据,速度非常快。

由于索引不包含 _id 字段,因此无涯教程已将其明确排除在查询输出集中,因为MongoDB默认在每个查询中都返回_id字段。所以下面的查询不会在上面创建的索引中涉及-

>db.users.find({gender:"M"},{user_name:1})

参考链接

https://www.learnfk.com/mongodb/mongodb-covered-queries.html

标签:教程,name,MongoDB,无涯,查询,索引,gender,users
From: https://blog.51cto.com/u_14033984/8183322

相关文章

  • Linux 下使用串口的简易教程
    1、检查串口的配置。查看串口的波特率、数据位、校验位等可以使用以下命令: $stty-F/dev/ttyS02、修改串口的配置。使用stty命令可以修改串口的波特率、数据位、校验位等选项,例如,将串口波特率修改为115200,按如下方式操作:$stty-F/dev/ttyS01152003、stty命令功......
  • Mysql 8.0 下载及安装教程
    软件介绍:MySQL是一个关系型数据库管理系统,由瑞典MySQLAB公司开发,属于Oracle旗下产品。MySQL是最流行的关系型数据库管理系统之一,在WEB应用方面,MySQL是最好的RDBMS(RelationalDatabaseManagementSystem,关系数据库管理系统)应用软件之一。 安装和使用教程:1.通过文章末尾处......
  • 无涯教程-MongoDB - 数据库引用
    如MongoDB关系的最后一章所示,为了在MongoDB中实现规范化的数据库结构,无涯教程使用了引用关系的概念,也称为ManualReferences,其中无涯教程手动将参考文件的ID存储在其他文件中。但是,如果文档包含来自不同集合的引用,则可以使用MongoDBDBRefs。使用DBRefDBRefs中有三个字段-......
  • 无涯教程-MongoDB - PHP
    要将MongoDB与PHP一起使用,您需要使用MongoDBPHP驱动程序,从URL下载PHP驱动程序,确保下载最新版本,现在解压缩并将php_mongo.dll放入您的PHP扩展目录(默认为"ext"),并将以下行添加到php.ini文件中-extension=php_mongo.dll连接数据库要创建连接,您需要指定数据库名称,如果数据库不......
  • 无涯教程-MongoDB - 复制数据
    复制是跨多个服务器同步数据的过程,复制提供了冗余,并通过不同数据库服务器上的多个数据副本提高了数据可用性,复制可防止数据库丢失单个服务器。复制还允许您从硬件故障和服务中断中恢复,使用其他数据副本,您可以将其专用于灾难恢复,报告或备份。复制工作方式MongoDB通过使用副本集......
  • 无涯教程-MongoDB - Java
    在本章中,无涯教程将学习如何设置MongoDBJDBC驱动程序。安装驱动在Java程序中开始使用MongoDB之前,需要确保在计算机上设置了MongoDBJDBC驱动程序和Java,您可以检查Java教程以在计算机上安装Java。现在,让无涯教程检查如何设置MongoDBJDBC驱动程序。您需要从路径下载 jarmong......
  • Proxifier 2023年11月时最新版 激活教程
    前言Proxifier是一款功能非常强大的socks5客户端,可以让不支持通过代理服务器工作的网络程序能通过HTTPS或SOCKS代理或代理链。支持64位系统支持Xp,Vista,Win7,支持socks4,socks5,http代理协议,支持TCPUDP协议,可以指定端口,IP,指定程序等运行模式,兼容性非常好。有许多网络应用程序不支持......
  • 无涯教程-MongoDB - 投影语句
    在MongoDB中,投影(Projection)意味着仅选择必要的数据,而不是选择全部数据,如果文档有5个字段,而只需要显示3个字段,则从中选择3个字段。find()方法MongoDB的find()方法在MongoDB查询文档中进行了解释,该方法接受第二个可选参数是您要检索的字段列表,在MongoDB中,执行find()方法时......
  • 无涯教程-MongoDB - 限制查询
    在本章中,无涯教程将学习如何使用MongoDB限制记录。要限制MongoDB中的记录,您需要使用limit()方法,该方法接受一个数字类型参数,该参数是您要显示的文档数。Limiting-语法limit()方法的基本语法如下->db.COLLECTION_NAME.find().limit(NUMBER)Limiting-示例考虑收集myyco......
  • 无涯教程-MongoDB - 排序数据
    在本章中,无涯教程将学习如何在MongoDB中对记录进行排序。要在MongoDB中对文档进行排序,您需要使用sort()方法,要指定排序顺序,请使用1和-1。1表示升序,-1表示降序。Sorting-语法sort()方法的基本语法如下->db.COLLECTION_NAME.find().sort({KEY:1})Sorting-示例考虑收集......