MongoDB?Shell常用基本操作命令详解


    目录
  • 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 <db_name> 命令,比如:
    
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 的一些常用操作,在做一些简单的运维工作,调试工作时,会非常有效。