Mongo集合操作

2、创建切换数据库

2.1 默认数据库

mongo数据库和其他类型的数据库一样,可以创建数据库,且可以创建多个数据库。

mongo数据库默认会有四个数据库,分别是

  • admin:主要存储MongoDB的用户、角色等信息

  • config:主要存储分片集群基础信息

  • local:主要存储副本集的元数据

  • test:在不插入数据时不会显示出来

    test库是一个默认的数据库,除了test库外admin、config、local库为系统库

2.2.1 admin库

admin数据库是mong默认的系统库之一,它最主要用来存放一些用户、角色以及版本等信息,在admin库下默认有两个集合(在其他数据库中叫表),分别是角色信息和版本信息。

# 切换到admin库下
use admin
# 查看是否切换成功
db
#查看admin库中的集合
show collections

在这里插入图片描述

其中 system.version主要存储一些featureCompatibilityVersion信息和authSchema信息

db.system.version.find()

在这里插入图片描述

system.users主要存储一些用户 角色信息
在这里插入图片描述

​ 可以在admin数据库下建立任意集合,存储任何数据,但强烈建议不要使用admin数据库存储应用业务数据,最好创建新的数据库。
  admin数据库里的system.users集合的数据会缓存到内存里,这样不用每次鉴权都从磁盘加载用户角色信息。
  MongoDB admin数据库的写入操作的锁级别只能到DB级别,不支持多个collection并发写入,在写入时也不支持并发读取。如果用户在admin数据库里存储业务数据,则可能遭遇性能问题。

2.2.2 config库

config数据库也是mongo默认的系统库之一, 主要存储副本集的元数据

# 切换到local库下
use local
# 查看是否切换成功
db
#查看local库中的集合,
show collections

2.2.3 local库

local数据库也是mongo默认的系统库之一, 主要用来存储分片集群的信息,一般只有在分片是起作用

# 切换到local库下
use local
# 查看是否切换成功
db
#查看local库中的集合,
show collections

2.2 创建切换删除数据库

2.2.1 创建切换数据库

在mongo中创建和切换数据库用的是同一个命令

use database_name

如果DataBase_Name存在,则直接切换,若不存在则直接创建

# 查看当前已存在的所有数据库
>show dbs
admin   0.000GB
config  0.000GB
local   0.000GB
# 创建数据库
>use demo
switched to db demo
# 再次查看当前存在的所有数据库
>show dbs
admin   0.000GB
config  0.000GB
local   0.000GB
# 可以发现,没有刚才自己创建的数据库,那是因为在mongo中创建的数据库默认不展示,需要想向数据库中插入数据,此时数据库才会展示
>db.demo.insert({
   
   "name":"hello worod"});
>>show dbs
admin   0.000GB
config  0.000GB
local   0.000GB
demo    0.000GB

2.2.3 删除数据库

#切换到需要删除的数据库
>use demo
#查看
>db
#删除
>db.dropDatabase()

2.2.4 数据库命名规范

  1. 不能是空字符串(“”)
  2. 不得含有’ '(空格)、.、$、/、\和\0 (空字符)。
  3. 应全部小写,且最多64字节
  4. 有一些数据库名是保留的,不能作为自己的库名(例如:admin config local)

3、集合操作

在mongo数据库中,数据表叫做集合。

SQL术语/概念 MongoDB术语/概念 解释/说明
database database 数据库
table collection 数据库表/集合

3.1 创建集合

在mongo中创建集合的方式主要分为两类:

  1. 隐式创建集合
  2. 显示创建集合

3.1 隐式创建集合

隐式创建集合,顾名思义就是在你没有创建集合,但是却mongo已经帮你创建好集合了。其实本质是当我们在创建数据库的时候,mongo默认会给你创建一个和数据库名一样的集合

use demo
db.demo.insert({id:1,name:"hello mongo"})

此时就会创建一个默认的集合,但是如果不插入数据,则该数据库不会展示.

3.2 显示创建集合

显示创建集合就是通过命令进行显示的创建集合

语法:

​ db.createCollection(name, options)

参数说明:

  • name: 要创建的集合名称
  • options: 可选参数, 指定有关内存大小及索引的选项
字段 类型 描述
capped 布尔 如果为 true,则创建固定集合。固定集合是指有着固定大小的集合,当达到最大值时,它会自动覆盖最早的文档。 当该值为 true 时,必须指定 size 参数。,默认为false
size 数值 为固定集合指定一个最大值,即字节数。 如果 capped 为 true,也需要指定该字段。
max 数值 指定固定集合中包含文档的最大数量。

例子:

#得到所有集合(不包含集合的详细信息)
db.getCollectionNames()
#得到集合的详细信息
db.getCollectionInfos()
#创建固定集合
db.createCollection("test1",{capped:true,size:1000,max:1000})
#创建非固定集合
db.createCollection("test")

在这里插入图片描述

3.2 查看集合

查看的集合的方式主要分为两种

  1. 查看集合的详细信息
  2. 查看集合,只得到集合的名字
#得到所有集合(不包含集合的详细信息)
db.getCollectionNames()
#得到集合的详细信息
db.getCollectionInfos()

![

3.3 删除集合

当我们不想使用某个集合(表),或者不在使用某个集合时,为了节约空间,此时我们可以将某个集合删除, 但是在删除集合时一定要特别注意,一般不建议删除集合,尤其是在生产环境中.

语法:

db.collection_Nane.drop()

如果删除成功,则返回true,否则返回false

例子:

#删除某个集合
db.test.drop()

在这里插入图片描述

注意:不建议进行此操作,尤其是在生产环境中。

猜你喜欢

转载自blog.csdn.net/qq_40520912/article/details/130685411