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. Python 集合set概念和操作

    # 集合 # 概念 # 无序的, 不可随机访问的, 不可重复的元素集合 # 与数学中集合的概念类似,可对其进行交.并.差.补等逻辑运算 # 分为可变集合和非可变集合 # set # 为可变集合 # 增 ...

  2. java resources 红叉 Cannot change version of project facet Dynamic Web Module to 2.5

    在使用maven导入项目的时候,markers提示Cannot change version of project facet Dynamic Web Module to 2.5,不能将工程转换为2. ...

  3. linux下java unrecognized class file version错误的解决

    root@Mr javaPC]# java HelloWorldException in thread “main” java.lang.ClassFormatError: HelloWorld (u ...

  4. mysql服务器3306端口不能远程连接的解决

    1.网络检测   1)ping主机可以:   2)telnet 主机3306端口不可以:     telnet 主机22端口可以:   说明与本机网络没有关系: 2.端口检测   1)netstat ...

  5. JavaScript实现的功能

    1.js事件阻止冒泡的应用 1)问题描述: 单机除了这两个元素,触发事件,: 可用阻止事件冒泡 2)解决方法: $('body').click(function(e){ $('#searchTree' ...

  6. 使用log4j2打印Log,log4j不能打印日志信息,log4j2不能打印日志信息,log4j和logj2,idea控制台信息乱码(文末)

    说来惭愧,今天就写了个"hello world",了解了一下log4j的日志. 本来是想在控制台打印个log信息,也是遇到坎坷重重,开始也没去了解log4j就来使用,log4j配置 ...

  7. Codeforces Round #283 (Div. 2) E. Distributing Parts 贪心+set二分

    E. Distributing Parts time limit per test 2 seconds memory limit per test 256 megabytes input standa ...

  8. 查询优化 | MySQL慢查询优化

    ​Explain查询:rows,定位性能瓶颈. 只需要一行数据时,使用LIMIT1. 在搜索字段上建立索引. 使用ENUM而非VARCHAR. 选择区分度高的列作为索引. 采用扩展索引,而不是新建索引 ...

  9. 实现继承+接口继承+虚方法+隐藏方法+this/base+抽象类+密封类/方法+修饰符

    概念: 在上一节课中学习了如何定义类,用类当做模板来声明我们的数据. 很多类中有相似的数据,比如在一个游戏中,有Boss类,小怪类Enemy,这些类他们有很多相同的属性,也有不同的,这个时候我们可以使 ...

  10. Sublime Text 3 (含:配置 C# 编译环境)

    Sublime Text 3http://www.sublimetext.com/3http://www.sublimetext.com/3dev 1. 关闭自动更新   菜单:Preferences ...