目录
- MongoDB Shell
- 连接数据库
- 库(database)的操作
- 查看所有数据库
- test 库
- 查看当前数据库
- 删除数据库
- 集合的基本操作
- 创建集合
- 查看集合
- 删除集合
- 其他 Shell 命令
- 清屏
- 退出 shell
- 小结
MongoDB Shell
MongoDB Shell 是一个功能齐全的 JS 和 Node.js 的REPL环境,用于与 MongoDB 服务器进行交互,是一个 shell 环境的客户端工具。
本文介绍一些 MongoDB Shell 的常用操作。
连接数据库
mongosh
$ mongosh
如果开启了身份验证,则需要输入用户名和密码:
$ mongosh -u root -p 123456
库(database)的操作
查看所有数据库
$ show databases;
或者使用别名:
$ show dbs;
MongoDB 安装好后会有3个默认的数据库(保留库):
- admin:存储 MongoDB 管理用户的有关信息
- config:当 MongoDB 用于分片设置时,config 数据库在内部使用,用于保存和分片有关的信息
- local:这个数据库永远不会被复制,可以用来存储本地单台服务器的任意集合
有数据存储需要时,不建议使用这三个数据库。
当设置了副本集,一个数据库中的数据会被复制到其他副本中,而 local 库的数据仅存储于当前这台服务器,不会被复制。
从权限的角度看,admin 库是 root 数据库。如果将某个用户添加到 admin 数据库中,则该用户会自动继承所有数据库的权限。
一些特定的服务器端命令也只能在 admin 数据库中执行,比如关闭MongoDB 服务:
use admin; db.shutdownServer();
h3>切换/创建数据库
use
use test;
如果存在 test 库,则切换到该库;如不存在,将创建并切换到该库。此时再查看数据库,发现并没有刚创建的库。这是因为在 MongoDB 中,如果一个库没有任何数据,默认该库是不显示的。
test 库
连接到 MongoDB 时,默认使用的是 test 库。
test 库默认也是空的,所以也不会被展示出来。
查看当前数据库
db;
删除数据库
db.dropDatabase();
集合的基本操作
集合(collection)类似于关系型数据中表的概念。
集合的操作是建立在库之上的,所以先创建一个新的数据库:
use examples;
创建集合
db.createCollection(集合名称, [选项])
创建用户集合:
db.createCollection("users")
可选的配置项:
配置项 | 类型 | 描述 |
---|---|---|
capped | boolean | 是否创建固定集合,也就是固定大小的集合。默认为 false。当设置true时,需要指定 size 配置项。当超过最大值时,新的数据会覆盖掉最早的数据。 |
size | number | 设置固定集合的最大值,单位是字节。 |
max | number | 设置固定集合中包含文档的最大数据。 |
这些配置项很少用到,在创建集合时根据需要选用即可。
查看集合
$ show collections;
或者:
$ show tables;
删除集合
db.集合名称.drop();
db.users.drop();
其他 Shell 命令
清屏
cls;
退出 shell
exit;
或者
quit();
或者直接使用快捷键 Ctrl + C。
小结
本文介绍了 MongoDB Shell 的一些常用操作,在做一些简单的运维工作,调试工作时,会非常有效。