https://docs.mongodb.com/manual/mongo/

一、MongoDB客户端使用

1、mongo:启动mongo的客户端,和mongo客户端的登录

[root@cmos1 bin]$ ./mongo
MongoDB shell version v3.4.2
connecting to: mongodb://127.0.0.1:27017
MongoDB server version: 3.4.
Server has startup warnings:
--28T19::06.747+ I STORAGE [initandlisten]
--28T19::06.747+ I STORAGE [initandlisten] ** WARNING: Using the XFS filesystem is strongly recommended with the WiredTiger storage engine
--28T19::06.747+ I STORAGE [initandlisten] ** See http://dochub.mongodb.org/core/prodnotes-filesystem
--28T19::07.117+ I CONTROL [initandlisten]
--28T19::07.117+ I CONTROL [initandlisten] ** WARNING: Access control is not enabled for the database.
--28T19::07.117+ I CONTROL [initandlisten] ** Read and write access to data and configuration is unrestricted.
--28T19::07.117+ I CONTROL [initandlisten]
--28T19::07.117+ I CONTROL [initandlisten]
--28T19::07.117+ I CONTROL [initandlisten] ** WARNING: /sys/kernel/mm/transparent_hugepage/enabled is 'always'.
--28T19::07.117+ I CONTROL [initandlisten] ** We suggest setting it to 'never'
--28T19::07.117+ I CONTROL [initandlisten]
--28T19::07.117+ I CONTROL [initandlisten] ** WARNING: /sys/kernel/mm/transparent_hugepage/defrag is 'always'.
--28T19::07.117+ I CONTROL [initandlisten] ** We suggest setting it to 'never'
--28T19::07.117+ I CONTROL [initandlisten]
>

如果连接远程的mongoDB的话

mongo paydb --username pay1usr  --host 10.200.110.15 --port 27017 --password pay1usr1234

二、MongoDB数据库层管理相关命令

2.1、use 创建自定义数据库

use databaseName  --如果 databaseName 数据库不存在, 新建数据库。如果存在,则连接该数据库。

2.2、show dbs 查看数据库列表

show dbs

> show dbs
admin 0.000GB
config 0.000GB
local 0.000GB
member_data 0.000GB
>

2.3、db   ---显示当前使用的数据库名称

> db
member_data
>

2.4、db.getName()  ---显示当前使用的数据库名称

> db.getName()
member_data
>

2.5、 db.dropDatabase()  --删当前使用的数据库

db.dropDatabase()   # 执行删除
{ "ok" : 1 } # 返回

2.6、 db.repairDatabase()  --修复当前数据库

> db.repairDatabase()
{ "ok" : 1 }
>

2.7、 db.version()   --当前数据库版本

> db.version()
4.0.6
>

2.8、 db.getMongo()  --查看当前数据库的链接机器地址

> db.getMongo()
connection to 127.0.0.1:27017
>

2.9、db.getCollectionNames()   --查看数据库中有那些个集合(表)

> db.getCollectionNames()
[ "memberDto", "my", "t_member" ]
>

2.10、db.stats() 统计数据库信息

db.stats()

# 统计数据库信息
db.stats()
{
"db" : "test", # 系统自带测试数据库
"collections" : 0, # 集合数量
"views" : 0, #
"objects" : 0, # 文档对象的个数, 所有集合的记录数之和
"avgObjSize" : 0, # 平均每个对象的大小, 通过 dataSize / Objects 得到
"dataSize" : 0, # 当前库所有集合的数据大小
"storageSize" : 0, # 磁盘存储大小
"numExtents" : 0, # 所有集合的扩展数据量统计数
"indexes" : 0, # 已建立索引数量
"indexSize" : 0, # 索引大小
"fileSize" : 0, #
"fsUsedSize" : 0, #
"fsTotalSize" : 0, #总大小
"ok" : 1
}

默认单位:字节byte

三、MongoDB 集合管理相关命令

3.1、show collections    --创建集合(表)

> db.duan.insert({name:"duan",age:20})
WriteResult({ "nInserted" : 1 }) #插入成功提示
>

3.2、show collections    --查看所有的集合(表)

> show collections
duan
memberDto
my
t_member
>

3.3、db.xx.drop()    --删除对应集合(表)

> db.duan.find()
{ "_id" : ObjectId("5cbd6fa7770fa2f0d42b78e6"), "name" : "duan", "age" : 20 }
> db.duan.drop()
true
> db.duan.find()
>

、MongoDB 文档操作命令

4.1、给指定数据库添加集合并且添加记录
db.[documentName].insert({...})

> db.duan.insert({name:"duan",age:22})
WriteResult({ "nInserted" : 1 })
>

4.2、查询指定文档的数据

db.[documentName].find()

> db.duan.find()
{ "_id" : ObjectId("5cbd6fa7770fa2f0d42b78e6"), "name" : "duan", "age" : 20 }
>

4.3、查看文档数量

db.collectionName.find().count()

> db.duan.count()
2
>

4.4、更新文档数据
db.[documentName].update({查询条件},{更新内容})

> db.my.update({"name":"zhang"},{"name":"zhang","dept":"renli"})
WriteResult({ "nMatched" : , "nUpserted" : , "nModified" : })
> db.my.find()
{ "_id" : ObjectId("58da50c316910cd26a9faa26"), "name" : "zhang", "dept" : "renli" }
>

4.5、删除文档中的数据
db.[docmentName].remove({...})

> db.my.find()
{ "_id" : ObjectId("58da50c316910cd26a9faa26"), "name" : "zhang", "dept" : "renli" }
{ "_id" : ObjectId("58da51b216910cd26a9faa28"), "name" : "li", "dept" : "yanfa2" }
> db.my.remove({"dept":"yanfa2"})
WriteResult({ "nRemoved" : })
> db.my.find()
{ "_id" : ObjectId("58da50c316910cd26a9faa26"), "name" : "zhang", "dept" : "renli" }
>

、MongoDB 其它管理命令(管理类、统计、监控、性能)

5.1、查看数据库用户角色权限

show roles

# 显示 test 数据库的所有角色权限
show roles
{
"role" : "dbAdmin", # 数据库管理角色, 执行数据库管理相关操作功能
"db" : "test",
"isBuiltin" : true, # 内置角色
"roles" : [ ], # 放置用户角色、权限等信息
"inheritedRoles" : [ ]
}
{
"role" : "dbOwner", # 提供数据库任何管理操作功能, 此角色\
# 集合了 readWrite, dbAdminhe userAdmin
# 角色赋予的权限
"db" : "test",
"isBuiltin" : true,
"roles" : [ ],
"inheritedRoles" : [ ]
}
{
"role" : "enableSharding", # 提供分片操作权限
"db" : "test",
"isBuiltin" : true,
"roles" : [ ],
"inheritedRoles" : [ ]
}
{
"role" : "read", # 主要提供自定义业务数据库读权限
"db" : "test",
"isBuiltin" : true,
"roles" : [ ],
"inheritedRoles" : [ ]
}
{
"role" : "readWrite", # 主要提供自定义业务数据库读写权限
"db" : "test",
"isBuiltin" : true,
"roles" : [ ],
"inheritedRoles" : [ ]
}
{
"role" : "userAdmin", # 提供在当前数据库上创建和修改角色和用户的功能。
# 由于该角色允许操作员向任何用户授予任何权限,
# 该角色还间接地提供对数据库的超级用户(root)
# 的访问权限。
"db" : "test",
"isBuiltin" : true,
"roles" : [ ],
"inheritedRoles" : [ ]
}

5.2、查看统计数据库信息

db.stats()

# 统计数据库信息
db.stats()
{
"db" : "test", # 系统自带测试数据库
"collections" : 0, # 集合数量
"views" : 0, #
"objects" : 0, # 文档对象的个数, 所有集合的记录数之和
"avgObjSize" : 0, # 平均每个对象的大小, 通过 dataSize / Objects 得到
"dataSize" : 0, # 当前库所有集合的数据大小
"storageSize" : 0, # 磁盘存储大小
"numExtents" : 0, # 所有集合的扩展数据量统计数
"indexes" : 0, # 已建立索引数量
"indexSize" : 0, # 索引大小
"fileSize" : 0, #
"fsUsedSize" : 0, #
"fsTotalSize" : 0, #总大小
"ok" : 1
}

默认单位:字节byte

如果想要返回kb

db.stats(1024);

如果想要返回MB

db.stats(1048576);

如果想要返回GB

db.stats(1073741824);

5.2、mongostat 实时数据库状态,读写、加锁、索引命中、缺页中断、读写等待队列等情况。

  每秒刷新一次状态值,并能提供良好的可读性,通过这些参数可以观察到MongoDB系统整体性能情况。

[mongod@MongoDB oplog]$ mongostat -h 10.0.0.152 --port 28017
insert query update delete getmore command flushes mapped vsize res faults qr|qw ar|aw netIn netOut conn set repl time
*0 *0 *0 *0 0 1|0 0 303.0M 13.0M 0 0|0 0|0 143b 8k 1 RTR 2018-01-08T17:28:42+08:00

参数说明:

参数

参数说明

insert

每秒插入量

query

每秒查询量

update

每秒更新量

delete

每秒删除量

conn

当前连接数

qr|qw

客户端查询排队长度(读|写)最好为0,如果有堆积,数据库处理慢。

ar|aw

活跃客户端数量(读|写)

time

当前时间

示例:

[root@localhost bin]# ./mongostat -h 10.200.110.99 --port 27017
insert query update delete getmore command dirty used flushes vsize res qrw arw net_in net_out conn time
*0 *0 *0 *0 0 2|0 0.0% 0.0% 0 981M 88.0M 0|0 1|0 158b 62.3k 7 Apr 22 16:35:41.814
*0 *0 *0 *0 0 2|0 0.0% 0.0% 0 981M 88.0M 0|0 1|0 158b 62.3k 7 Apr 22 16:35:42.813
*0 *0 *0 *0 0 1|0 0.0% 0.0% 0 981M 88.0M 0|0 1|0 157b 62.1k 7 Apr 22 16:35:43.815

5.3、 mongotop命令说明:

[mongod@MongoDB oplog]$ mongotop  -h 127.0.0.1:27017
2018-01-08T17:32:56.623+0800 connected to: 127.0.0.1:27017 ns total read write 2018-01-08T17:32:57+08:00
admin.system.roles 0ms 0ms 0ms
admin.system.users 0ms 0ms 0ms
admin.system.version 0ms 0ms 0ms
app.user 0ms 0ms 0ms
automationcore.automation.job.status 0ms 0ms 0ms
automationcore.config.automation 0ms 0ms 0ms
automationcore.config.automationTemplates 0ms 0ms 0ms
automationcore.config.automationTemplates_archive 0ms 0ms 0ms
automationcore.config.automation_archive 0ms 0ms 0ms
automationstatus.lastAgentStatus 0ms 0ms 0ms

mongotop重要指标

ns:数据库命名空间,后者结合了数据库名称和集合。
total:mongod在这个命令空间上花费的总时间。
read:在这个命令空间上mongod执行读操作花费的时间。
write:在这个命名空间上mongod进行写操作花费的时间。

5.4、 db.currentOp()

db.currentOp是个好东西,顾名思义,就是当前的操作。在mongodb中可以查看当前数据库上此刻的操作语句信息,包括insert/query/update/remove/getmore/command等多种操作。直接执行

db.currentOp()一般返回一个空的数组,我们可以指定一个参数true,这样就返回用户connections与系统cmmand相关的操作。

查看数据库当前执行什么操作。

用于查看长时间运行进程。

通过(执行时长、操作、锁、等待锁时长)等条件过滤。

10、Shell的help
里面有所有的shell可以完成的命令帮助
全局的help数据库相关的db.help()集合相关的db.[databaseName].help()

mongo shell命令的更多相关文章

  1. 常见的mongo shell命令

    启动mongo shell 在windows下,双击mongo.exe可以启动mongo shell 查询库.表及选择库 查询所有库命令: show dbs 应用某一个db use jxs_datab ...

  2. mongo Shell初体验

    mongo shell是一个MongoDB的交互式JavaScript接口.您可以使用mongo shell来查询和更新数据以及执行管理操作. 打开cmd命令行,输入mongo,就可以进入mongo ...

  3. spring-data-mongodb与mongo shell的对应关系

    除了特殊注释外,本文的测试结果均基于 spring-data-mongodb:1.10.6.RELEASE(spring-boot-starter:1.5.6.RELEASE),MongoDB 3.0 ...

  4. MongoDB基本增删改查操作-mongo shell

    基础 1.查看所有数据库: show dbs 2.选择数据库: use test 3.查看数据库中有哪些集合: show collections 如下图: 查询 1.查看集合中有哪些数据,其中abc为 ...

  5. 使用mongo shell和客户端连接至MongoDB Atlas

    MongoDB Atlas是Mongo官方的一个集群服务,也可以注册并创建一个免费的集群,但DB的大小只有500M,如果数据量不是很大的应用,可以选择该集群方案 需要注意的是,目前我使用的这个集群,服 ...

  6. 孤荷凌寒自学python第五十六天通过compass客户端和mongodb shell 命令来连接远端MongoDb数据库

    孤荷凌寒自学python第五十六天通过compass客户端和mongodb shell 命令来连接远端MongoDb数据库 (完整学习过程屏幕记录视频地址在文末) 今天是学习mongoDB数据库的第二 ...

  7. 《转》couldn't connect to server 127.0.0.1:27017 at src/mongo/shell/mongo.js:145

    couldn't connect to server 127.0.0.1:27017 at src/mongo/shell/mongo.js:145,有须要的朋友能够參考下. 应为昨天安装的时候没及时 ...

  8. 快速掌握mongoDB(一)——mongoDB安装部署和常用shell命令

    1.mongoDB简介 mongoDB 是由C++语言编写的,是一种分布式的面向文档存储的开源nosql数据库.nosql是Not Only SQL的缩写,是对不同于传统的关系型数据库的数据库管理系统 ...

  9. 图解Mongo Shell的使用

    mongo shell是一个MongoDB的交互式JavaScript接口.您可以使用mongo shell来查询和更新数据以及执行管理操作. 本篇经验将和大家介绍Mongo Shell的使用方法,希 ...

随机推荐

  1. poj 1273 ---&&--- hdu 1532 最大流模板

    最近在换代码布局,因为发现代码布局也可以引起一个人的兴趣这个方法是算法Edmonds-Karp 最短增广路算法,不知道的话可以百度一下,基于Ford-Fulkerson算法的基础上延伸的 其实我不是很 ...

  2. 【codevs2011】最小距离之和 [LNOI2013](Floyd)

    题目网址:http://codevs.cn/problem/2011/ 题目大意:有一个图,每次删一条边(可以重复删),求每次删边之后所有点对的最短距离之和. 看了一眼题目,顿时发现了O(n^4)的暴 ...

  3. php-fpm docker 容器 搭建

    继续上一篇文章(centos 7 容器的搭建) 下面构建一个php-fpm镜像: dockerfile 文件如下: # # MAINTAINER # DOCKER-VERSION # # Docker ...

  4. linux基础(3)-java安装

    安装jdk1.8 [root@spark1 usr]# mkdir java #创建java目录 通过WinSCP将jdk-8u77-linux-x64.tar.gz传到/usr/java目录下 [r ...

  5. HDFS文件访问权限

    HDFS中的文件访问权限 针对文件和目录,HDFS的权限模式与POSIX非常相似一共提供三类权限模式:只读权限(r).写入权限(w)和可执行权限(x).读取文件或列出目录内容时需要只读权限.写入一个文 ...

  6. 【转】php 操作数组(合并,拆分,追加,查找,删除等)

    1. 合并数组 array_merge()函数将数组合并到一起,返回一个联合的数组.所得到的数组以第一个输入数组参数开始,按后面数组参数出现的顺序依次迫加.其形式为: array array_merg ...

  7. linux命令:mv命令

    mv命令是move的缩写,可以用来移动文件或者将文件改名(move (rename) files),是Linux系统下常用的命令,经常用来备份文件或者目录. 1.命令格式: mv [选项] 源文件或目 ...

  8. [STL]vector与排序算法

    vector与算法 头文件中包含大量与 vector 相关的算法,这些算法同样适用于其它容器,比如 std::list 等. 排序(Sort) 相关函数: std::sort :普通排序 defaul ...

  9. 解决CentOS 6环境时区、日期、时间同步方法

    有些时候我们在选择的VPS服务商提供的VPS主机方案安装系统.安装建站环境之后就直接上马网站,但是我们会有发现发布的文章或者有些时候设置的自动执行脚本时间与我们实际的时间不符合.甚至有些程序是需要与本 ...

  10. sorket is closed

    今早来公司启动项目时,发现在代码正确的情况下报了一个错. 15:19:14.362 [http-9000-2] ERROR com.nari.osp.servicebus.rmi.LongConnec ...