首页 > 数据库 >MongoDB db.collection.explain()

MongoDB db.collection.explain()

时间:2024-04-25 14:23:44浏览次数:20  
标签:... MongoDB explain db collection operation 执行

db.collection.explain() 封装了 explain 命令,推荐使用 db.collection.explain() 来执行 explain 命令。

 

db.collection.explain()返回以下方法的查询计划:aggregate()、count()、find()、remove()、distinct()、findAndModify()

 

因此,db.collection.explain()的使用方法就是在后面加上上面列举出的方法,格式:

db.collection.explain().<method(...)>

 

比如:

db.products.explain().remove( { category: "apparel" }, { justOne: true } )

 

具体可以查看一下帮助:

> db.collection.explain().help()
Explainable operations
        .aggregate(...) - explain an aggregation operation
        .count(...) - explain a count operation
        .distinct(...) - explain a distinct operation
        .find(...) - get an explainable query
        .findAndModify(...) - explain a findAndModify operation
        .mapReduce(...) - explain a mapReduce operation
        .remove(...) - explain a remove operation
        .update(...) - explain an update operation
Explainable collection methods
        .getCollection()
        .getVerbosity()
        .setVerbosity(verbosity)

db.products.explain()返回的信息量,取决与 verbosity 的取值。verbosity 有三种模式,定义了 explain 输出结果的详细模式:

·缺省是queryPlanner,返回优化器选中的执行计划,但不会执行。

·executionStats:选出执行计划,执行执行计划并返回执行的统计信息;对于写操作,并不会真正将修改应用到数据库

·allPlansExecution:选出执行计划,执行执行计划并返回执行的统计信息的同时,还会返回其它候选执行计划

 

db.collection.explain() 使用 explain 跳过已经存在的缓存计划,并阻止 mongodb 生成新的执行计划条目。

 

示例

db.collection
    .explain("executionStats")
    .aggregate([
        { $match: { col1: "col1_val" }},
        { $group: { _id: "$id", total: { $sum: "$amount" } } },
        { $sort: { total: -1 } }
    ])

标签:...,MongoDB,explain,db,collection,operation,执行
From: https://www.cnblogs.com/abclife/p/18152441

相关文章

  • 利用 Amazon EMR Serverless、Amazon Athena、Apache Dolphinscheduler 以及本地 TiDB
    引言在数据驱动的世界中,企业正在寻求可靠且高性能的解决方案来管理其不断增长的数据需求。本系列博客从一个重视数据安全和合规性的B2C金融科技客户的角度来讨论云上云下混合部署的情况下如何利用亚马逊云科技云原生服务、开源社区产品以及第三方工具构建无服务器数据仓库的解......
  • 碎片和水位线回收的验证过程 转发 https://www.modb.pro/db/1780420808865845248
    1、数据库基础内容表空间-数据文件-段-区-块一个表空间由一个或者多个数据文件组成高水位线和表碎片的示意图其中被划掉的字代表delete删除,其中耶就是后续的insert,只会在末尾增加,而不是填充被删除的字段,这样就会导致数据库在搜寻数据时会浪费很多资源。整理碎片后大概是这......
  • 汉得PI&PO教材-Adapter使用-实例6 proxy2jdbc(异步)V1.0
    汉得PI&PO教材系列   汉得PI&PO教材-Adapter使用-实例6proxy2jdbc(异步)         仅限汉得内部使用 作者:汉得顾问版本:1.0日期:2017-02-01图标 图标含义 警告 示例 注释 建议......
  • 汉得PI&PO教材-Adapter使用-实例5 jdbc2jdbc(含存错过程)V1.0
    汉得PI&PO教材系列   Adapter使用-实例5jdbc2jdbc(含存错过程)         仅限汉得内部使用 作者:汉得顾问版本:1.0日期:2017-02-01图标 图标含义 警告 示例 注释 建议 语法......
  • 使用spring cloud loadbalancer 替代ribbon
    简介springcloudloadbalancer是spring自家推出的负载均衡器,可以平替ribbon。springcloudloadbalancer+RestClientRestClient是springframework6.1(对应springboot3.2)里内置的一个httprestapi调用器。相比RestTemplate,RestClient的链式写法使用起来十分流畅丝滑。s......
  • modbus和字节序
    numconvert软件上显示的十六进制是大端顺序,即数值顺序。modbus协议规定是按大端传输(见英文版说明),但是确切的说,它只是借用“大端”这个术语以表示它是由左往右依次字节传输的,因为毕竟大小端只有到了数值层面才有意义。针对16位传输,只存在正序(AB)或反序(BA)两种方式。针对双字32位......
  • Part-DB 配置流程
    介绍Part-DB是一个开源的器件管理工具,博主用于管理个人的电子器材,最近捣鼓了一下这个工具,由于手头还有一块闲置的赛昉·星光2的开发板,所以我打算一起拿来捣鼓一下,如果不成功,就用树莓派(生气......
  • dotnet 使用 windbg 运行脚本方式自动批量调试处理 dump 文件
    本文将和大家介绍一个简单且实际用途不大的使用windbg配合脚本的方式,进行自动化的大批量对dotnet系应用的dump进行自动化分析调试处理,可以自动根据调试需求输出dump文件的一些信息利用windbg执行调试脚本的能力,可以实现自动化调试dump文件,将调试dump文件获取的信息......
  • mongodb 分片创建使用汇总
    5.Mongodb1.查看分片:db.runComand({listshards:1})2.查看数据存储情况:showdbs3.查看分片状态:sh.status()4.开启数据库分片配置:db.runComand({enablesharding:"testdb"})db.enableSharding("testdb")db.shardCollection("testdb.persons",{id:1})5.创建索引(如果有......
  • Modbus转Profinet网关接电表与工控机通讯
    Modbus转Profinet网关(XD-MDPN100/300)的主要功能是实现Modbus协议和Profinet协议之间的转换和通信。Modbus转Profinet网关集成了Modbus和Profinet两种协议,支持ModbusRTU主站/从站,并可以与RS485接口的设备,如变频器、智能高低压电器、电量测量装置等进行连接。同时,它自带网口和串口,......