[不花钱站长]:从免费域名开始[0元] Oracle永久免费VPS[0元] VPS环境搭建免费脚本[0元] 秒变大盘挂载免费网盘[0元] 小白免费采集器1天500W[0元] CF免费DNS+CDN服务[0元]
[零基础网赚]:撸本站免费源码[0元] 网站强引免费蜘蛛法[0元] 图片视频文件免费存储[0元] 外链轻松发布免费友链[0元] 入坑免费教程学习源代码[0元] 网上百种+赚钱联盟推荐[?元]

↑↑VPS推荐网 WWW.VPS.COM.IN 稳定 便宜 免备案↑↑


您现在的位置是:首页 > 全球[VPS测评] >  amp,db,json,mongo,mongodb,secondary,shell,show,上能,命令,命令行,语法,调用,,国外永久免费VPS

Mongo shell使用方法及操作指南

全球[VPS测评]来源:VPS推荐网点击:971
【性价之王】【线路之王】【价格之王】【配置之王】
【免费之王】【香港首推】【梯子之王】【独服之王】
Mongo shell使用方法及操作指南

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

命令行看 json 格式比较吃力? 如何确定Secondary节点同步是否跟上? 怎么查看DB、集合使用了多少空间? 能否在shell 脚本里调用Mongo shell 怎么执行 MongoDB 命令,比如创建集合、索引? ……

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

语法糖

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

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

MongoDB的所有请求都以命令的形式发出,支持的命令列表参考Database Commands

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

* db.runCommand( { serverStatus: 1} )

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() * db.printSlaveReplicationInfo() 查看复制集同步信息 * rs.status() 查看复制集当前状态 * rs.conf() 查看复制集配置 * rs.initiate() 初始化复制集 * rs.reconfig() 重新配置复制集 * rs.add() / rs.remove() 增加/删除复制集节点 * sh.enableSharding() 对DB启用分片 * sh.shardCollection() 对集合进行分片 * sh.status() 查看sharding状态信息 * ... 文档格式化输出

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

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的文档会被格式化输出,可读性很强

mongo-9555:PRIMARY> db.collection1.find().pretty() { "_id" : ObjectId("587ed6ce098a4da78d508468"), "name" : "jack", "age" : 18, "sex" : "male", "hobbies" : [ "football", "basketball" ], "contact" : { "phone" : "10000123456", "address" : "hangzhou", "zipcode" : "31000" } }

mongo shell 里还可以通过 printjson 来格式化输出任意json对象,比如

mongo-9555:PRIMARY> printjson({ "_id" : ObjectId("587ed6ce098a4da78d508468"), "name" : "jack", "age" : 18, "sex" : "male", "hobbies" : [ "football", "basketball" ], "contact" : { "phone" : "10000123456", "address" : "hangzhou", "zipcode" : "310000000" } }) { "_id" : ObjectId("587ed6ce098a4da78d508468"), "name" : "jack", "age" : 18, "sex" : "male", "hobbies" : [ "football", "basketball" ], "contact" : { "phone" : "10000123456", "address" : "hangzhou", "zipcode" : "31000" } shell脚本调用

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

$ mongo --host localhost:27017 --eval "printjson( db.serverStatus().opcounters )" MongoDB shell version: 3.0.5 connecting to: localhost:27017/test { "insert" : 2, "query" : 13, "update" : 0, "delete" : 0, "getmore" : 74191, "command" : 104198 }

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

$cat test.js db = db.getSiblingDB("mydb") // 脚本里切换db的方式,相当于use mydb for (var i = 0; i < 100; i++) { db.collection.insert( {x: i} ) } printjson( {db.collection.count()} ) $ mongo --host localhost:27017 test.js MongoDB shell version: 3.0.5 connecting to: localhost:27017/test 100

mongo shell 还提供『启动时执行脚本』的机制,类似与linux shell里的启动新的shell时,执行~/.bashrc等文件的机制。

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

$cat .mongorc.js print("Welcome, ZhangYoudong"); 然后每次登录mongo shell时,这个文件的js脚本就会被执行 $ mongo --host localhost:27017 MongoDB shell version: 3.0.5 connecting to: localhost:27017/test Welcome, ZhangYoudong > man 手册

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

* help * db.help() * rs.help() * sh.help() * db.collection.find().help() * help misc

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


[amp]历史优惠活动内容
  • 一键快速CentOS环境yum安装LAMP网站环境及快速添加站点
  • OneinStack脚本LAMP(Apache)设置强制HTTPS和301跳转
  • 阿里云轻量应用服务器部署LAMP及安全组设置等网站环境
  • Ubuntu安装PHP7版本LAMP网站环境(Apache/MySQL/PHP7)
  • 体验phpStudy小皮面板创建LAMP/LNMP系统和建站图文
  • 完整配置CentOS6安装LAMP(Apache/MySQL/PHP)环境搭建教程
  • CentOS/Debian/Ubuntu系统一键安装LNMP/LAMP/LNMPA网站环境
  • 基于CentOS环境LAMP一键安装网站环境及添加域名建立站点过程
  • 完整Debian7配置LAMP(Apache/MySQL/PHP)环境及搭建建站
  • CentOS/Debian/Ubuntu一键安装LAMP(Apache/MySQL/PHP)
  • Ubuntu 14.04环境搭建LAMP(Linux/Apache/MySQL/PHP)建站
  • lnmp、lamp、lnmpa网站环境安装组合安装过程以及基本建站应用
  • Linux Debian系统配置LAMP(Apache, MySQL, PHP)网站环境详解
  • GoDaddy Email Marketing系列 – 创建邮件模板Campaign和测试E
  • MacBook安装XAMPP实现PHP调试环境及解决MySQL无法启动
  • LNMP/LAMP一键包安装Linux系统Web网站环境及添加站点建站
  • Debian 8系统安装LAMP(Linux, Apache, MySql, PHP)Web
  • CentOS环境安装LAMP一键安装包过程及添加域名建立网站常用命令
  • 安装宝塔面板建站选择LNMP还是LAMP组合(强制登录宝塔账户)
  • 解决XAMPP客户端\\”Apache Shutdown Unexpectedly\\”报错
  • GoDaddy Email Marketing系列 – Campaigns设计和布局邮件模板
  • 解决XAMPP客户端环境无法导入较大数据库的方法
  • 快云小助手Linux WEB管理面板 一键自动部署LAMP环境/一键建站
  • 解决XAMPP客户端环境无法导入较大数据库的方法
  • 快云小助手Linux WEB管理面板 一键自动部署LAMP环境/一键建站
  • WDCP的目录,启动,lnamp,所用端口的说明
  • lamp是什么?vps主机使用lamp
  • wamp5是什么?wamp server 和wamp5有什么区别
  • 如何查看LNAMP配置文件路径的方法
  • 在Ubuntu 16.04系统下配置LAMP#Apache, MySQL, PHP#环境
  • Ubuntu 14.04环境搭建LAMP(Linux/Apache/MySQL/PHP)建站
  • lnmp、lamp、lnmpa网站环境安装组合安装过程以及基本建站应用
  • Linux Debian系统配置LAMP(Apache, MySQL, PHP)网站环境详解
  • GoDaddy Email Marketing系列 – 创建邮件模板Campaign和测试E
  • MacBook安装XAMPP实现PHP调试环境及解决MySQL无法启动
  • LNMP/LAMP一键包安装Linux系统Web网站环境及添加站点建站
  • Debian 8系统安装LAMP(Linux, Apache, MySql, PHP)Web
  • CentOS环境安装LAMP一键安装包过程及添加域名建立网站常用命令
  • 安装宝塔面板建站选择LNMP还是LAMP组合(强制登录宝塔账户)
  • 解决XAMPP客户端\”Apache Shutdown Unexpectedly\”报错问题
  • GoDaddy Email Marketing系列 – Campaigns设计和布局邮件模板
  • 解决XAMPP客户端环境无法导入较大数据库的方法
  • 服务器运维必备技能—一键安装脚本搭建LNMP LAMP环境
  • 服务器运维必备技能—一键安装脚本搭建LNMP LAMP环境
  • 服务器运维必备技能—一键安装脚本搭建LNMP LAMP环境
  • 服务器运维必备技能—一键安装脚本搭建LNMP LAMP环境
  • 服务器运维必备技能—一键安装脚本搭建LNMP LAMP环境
  • 服务器运维必备技能—一键安装脚本搭建LNMP LAMP环境
  • 服务器运维必备技能—一键安装脚本搭建LNMP LAMP环境
  • 服务器运维必备技能—一键安装脚本搭建LNMP LAMP环境
  • 服务器运维必备技能—一键安装脚本搭建LNMP LAMP环境
  • 服务器运维必备技能—一键安装脚本搭建LNMP LAMP环境
  • 服务器运维必备技能—一键安装脚本搭建LNMP LAMP环境
  • 服务器运维必备技能—一键安装脚本搭建LNMP LAMP环境
  • 如何在Ubuntu上面安装LAMP环境
  • VPS新手教程→一键安装LNMP/LAMP/LANMP环境之Vestacp
  • VPS新手教程 – 一键安装LAMP环境(长久更新)
  • Ubuntu 16.04下安装LAMP环境包新手简易教程
  • 纯手工教程→centos6.x搭建LAMP环境
  • Fatcow-4折/年付38美元/免费域名/不限建站/无限主机/lamp环境

  • 猜你可能想看的VPS


    转载请注明原文地址:http://140.238.13.167:12355/read-157352.html

    下一篇       上一篇