目录
  • 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")

可选的配置项:

配置项类型描述
cappedboolean是否创建固定集合,也就是固定大小的集合。默认为 false。当设置true时,需要指定 size 配置项。当超过最大值时,新的数据会覆盖掉最早的数据。
sizenumber设置固定集合的最大值,单位是字节。
maxnumber设置固定集合中包含文档的最大数据。

这些配置项很少用到,在创建集合时根据需要选用即可。

查看集合

$ show collections;

或者:

$ show tables;

删除集合

db.集合名称.drop();

db.users.drop();

其他 Shell 命令

清屏

cls;

退出 shell

exit;

或者

quit();

或者直接使用快捷键 Ctrl + C。

小结

本文介绍了 MongoDB Shell 的一些常用操作,在做一些简单的运维工作,调试工作时,会非常有效。