MongoDB   发布时间:2022-05-23  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了Mongo shell:最强大的 MongoDB 管理工具大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。

《Mongo sHell:最强大的 MongoDB 管理工具》要点:
本文介绍了Mongo sHell:最强大的 MongoDB 管理工具,希望对您有用。如果有疑问,可以联系我们。

@H_251_7@mongo sHell 是 MongoDB 的命令行管理工具,功能非常强大,最近社区很多人咨询的一些问题,比如

  • 命令行看 Json 格式比较吃力?

  • 如何确定Secondary节点同步是否跟上?

  • 怎么查看DB、集合使用了多少空间?

  • 能否在sHell 脚本里调用Mongo sHell

  • 怎么执行 MongoDB 命令,比如创建集合、索引?

  • ......

上述问题都可以通过 Mongo sHell 来解决,而且Mongo sHell能做的远不止这些.

语法糖

为了方便关系型数据库的的用户切换到 MongoDB 上能快速上手,mongo sHell里做了一些语法上的兼容(最终还是通过调用 MongoDB 的命令实现的 ),例如

show dbs 列出所有DBuse dbname 切换当前DBshow tables 或 show collections 列出当前DB的所有表/集合show users 列出当前DB的所有用户show profile 列出当前DB的所有慢查询show logs 列出运行日志

执行命令

@H_251_7@mongoDB的所有哀求都以命令的形式发出,支持的命令列表参Database Commands

基本所有的driver都会实现一个通用的执行命令的接口,然后再封装出一些常用的接口(比如常用的CRUD操作),mongo sHell 通过 runcommand 接口来实现执行命令,例如执行 serverStatus 命令

* db.runcommand( { serverStatus: 1} )
@H_251_7@mongo sHell也对很对很多常用的命令进行了封装,让用户使用起来更简单.

常见的封装接口包括

* db.serverStatus() 查看mongod运行状态信息* db.stats() 查看db元数据* db.collection.stats() 查看集合元数据* db.collection.insert() / update / remove / find 对集合增删改查* db.collection.createIndex() 创建索引* db.collection.dropIndex() 删除索引* db.droPDAtabase() 删除DB* db.printReplicationInfo()

文档格式化输出

很多同学在使用 mongo sHell时,觉得文档输出后可读性差,比如

@H_110_41@mongo-9555:PRIMary> db.collection1.find() // 对集合调用find时,默认输出前20个文档{ "_ID" : ObjectID("587ed6ce098a4da78d508468"),"name" : "jack","age" : 18,"sex" : "male","hobbIEs" : [ "football","basketball" ],"contact" : { "phone" : "10000123456","address" : "hangzhou","zipcode" : "31000" } }

实际上,mongo sHell 可以对cursor的输出进行格式化(pretty)输出,JsON的文档会被格式化输出,可读性很强

@H_110_41@mongo-9555:PRIMary> db.collection1.find().pretty()@H_251_7@mongo sHell 里还可以通过 printJson 来格式化输出任意Json对象,比如

@H_110_41@mongo-9555:PRIMary> printJson({ "_ID" : ObjectID("587ed6ce098a4da78d508468"),"zipcode" : "310000000" } })

sHell脚本调用

@H_251_7@mongo sHell 除了支持交互式的调用方式,还能支持执行完一个或一批操作后自动退出,这样就能很方便的在sHell 脚本里调用 mongo sHell,比如获取 MongoDB 各个命令备调用的次数.

$ mongo --host localhost:27017 --eval "printJson( db.serverStatus().opcounters )"MongoDB sHell version: 3.0.5connecTing to: localhost:27017/test

如果要一次执行很多个 MongoDB 的操作,可以将操作写到文件里,然后使用 mongo sHell 批量执行

$cat test.Jsdb = db.getSiblingDB("mydb") // 脚本里切换db的方式,相当于use mydbfor (var i = 0; i < 100; i++) { db.collection.insert( {x: i} )
@H_251_7@mongo sHell 还提供『启动时执行脚本』的机制,类似与linux sHell里的启动新的sHell时,执行~/.bashrc等文件的机制.

只要将脚本写入 ~/.mongorc.Js 文件里,mongo sHell 启动时,就会先执行这个脚本,例如

$cat .mongorc.Jsprint("Welcome,ZhangYoudong");
@H_251_7@man 手册

上述的命令,并不需要去记忆,跟使用 linux sHell 一样,需要用的时候看下 Help 信息

* HelP* db.Help()

除了上述功能,mongo sHell 还提供了命令补全、命令历史等很多实用的功能,只要习惯了使用mongo sHell,根本无需再使用图形界面来管理 MongoDB;当然为了方便更多用户,阿里云 MongoDB 云数据库 不仅支持通过mongo sHell 及 其他第三方图形管理工具拜访,还附带一个DMS的数据库管理系统,供用户免费使用.

编程之家php培训学院每天发布《Mongo sHell:最强大的 MongoDB 管理工具》等实战技能,php、MysqL、liNUX、APP、Js,CSS全面培养人才。

大佬总结

以上是大佬教程为你收集整理的Mongo shell:最强大的 MongoDB 管理工具全部内容,希望文章能够帮你解决Mongo shell:最强大的 MongoDB 管理工具所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。
标签: