DBA MongoDB 库与集合

数据库

查看的命令

​ 下面是查看库相关的命令:

命令 简写 描述
show databases show dbs 查看所有库(库中必须有集合)
db.getName() db 查看当前所在库
db.stats() ... 查看当前库状态
db.getMongo() ... 查看当前所在库链接地址

​ 使用show databases来获取当前MongoDB中所有的数据库,这一条命令可以简写为show dbs,如下所示:

> show dbs
admin   0.000GB
config  0.000GB
local   0.000GB
test    0.000GB

​ 使用db.getName(),可获取目前所在的数据库名称,这一条命令可简写为db,在MongoDB中,登录时默认会进入一个名为test的数据库,该库下没有任何信息。如下所示:

> db
test

​ 使用db.stats(),可获取当前所在数据库的一些状态,如下所示:

> db.stats()
{
	"db" : "test",
	"collections" : 3,
	"views" : 0,
	"objects" : 7,
	"avgObjSize" : 142.57142857142858,
	"dataSize" : 998,
	"storageSize" : 94208,
	"numExtents" : 0,
	"indexes" : 3,
	"indexSize" : 61440,
	"scaleFactor" : 1,
	"fsUsedSize" : 4921679872,
	"fsTotalSize" : 8575254528,
	"ok" : 1
}

​ 使用db.getMongo(),可查看当前所在库的链接地址,如下所示:

> db.getMongo()
connection to 127.0.0.1:27017

进入与创建

​ 下面是创建库相关的命令:

命令 描述
use 库名 进入或创建某个数据库

​ MongoDB中创建和进入某个数据库的命令都是use,但情况有2种:

  • 已经有这个数据库,use就是进入该数据库
  • 没有这个数据库,use就是进入并创建该数据库

​ 情况1命令演示如下:

> use admin
switched to db admin
> db
admin

​ 情况2命令演示如下:

> use db1
switched to db db1
> db
db1
> show dbs
admin   0.000GB
config  0.000GB
local   0.000GB
test    0.000GB

​ 上面的这个示例中,我们仅创建并进入了db1,但是由于db1下没有集合,所以show dbs显示不出该库,这是正常现象。

删除某个库

​ 下面是删除库相关的命令:

命令 描述
db.dropDatabase() 必须use进将要被删除的库后才能执行该方法,删除数据库

​ MongoDB中删除库有两种情况:

  • 当前所在库中没有集合,切换至别的数据库当前库自动删除
  • 当前所在库中已有集合,使用db.dropDatabase()方法来删除该库与其下所有的集合

​ 目前我们在db1这个空库中,尝试进入admin库后再看db1是否被删除:

> use admin
switched to db admin
> show dbs
admin   0.000GB
config  0.000GB
local   0.000GB
test    0.000GB

​ 现在我们重新创建并进入db1库,并朝其中创建一个文档后再进入admin库,查看是否被删除:

> use db1
switched to db db1
> db.createCollection("coll")
{ "ok" : 1 }
> use admin
switched to db admin
> show dbs
admin   0.000GB
config  0.000GB
db1     0.000GB
local   0.000GB
test    0.000GB

​ 当db1有文档后,切换不会删除该库,此时若你执意要删除,可以通过db.dropDatabase()对其进行删除删除:

> use db1
switched to db db1
> db.dropDatabase()
{ "dropped" : "db1", "ok" : 1 }
> db
db1
> show dbs
admin   0.000GB
config  0.000GB
local   0.000GB
test    0.000GB

​ 需要注意,db.dropDatabase()方法必须在你进入该库之后方可执行,不能使用传参的方式进行删除,如:db.dropDatabase(“db1”),这种方式是错误的。

集合

查看的命令

​ 下面是查看集合相关的命令:

命令 描述
show collections 查看当前库下所有集合
show tables 同上
db.getCollectionNames() 同上

​ 这个没什么好说的,进入某个库后查看该库下的所有集合:

> use config
switched to db config
> show tables
system.sessions
> show collections
system.sessions
> db.getCollectionNames()
[ "system.sessions" ]

​ 唯一值得一提的是对于db.getCollectionNames()这个方法来说,无论你是否填入参数,它返回的还是当前库下的集合。

​ 如下所示,在config库中调用该方法看到的始终是config库下的集合:

> db
config
> db.getCollectionNames()
[ "system.sessions" ]
> db.getCollectionNames("admin")
[ "system.sessions" ]
> db.getCollectionNames("db1")
[ "system.sessions" ]

创建集合

​ 下面是创建集合相关的命令:

命令 描述
db.createCollection(“集合名”) 在当前库下创建一个集合,若已有该集合,则也会提示创建成功

​ MongoDB中创建集合可以有两种方式:

  • 直接对一个文档进行插入操作,可顺带的隐式创建集合
  • 使用db.createCollection()方法来创建一个集合

​ 方式1,想象我有一个集合(实际没有),直接对其插入文档:

> use db1
switched to db db1
> db.coll.insert({name : "Jack"})
WriteResult({ "nInserted" : 1 })
> show tables
coll

​ 方式2,使用db.createCollection()方法创建集合:

> db.createCollection("collection")
{ "ok" : 1 }
> show tables
coll
collection

删除集合

​ 下面是删除集合相关的命令:

命令 描述
db.集合名.drop() 删除当前库下的某一个集合

​ 这个命令没啥好说的,直接上示例:

> db.collection.drop()
true
> show tables
coll

重命名

下面是集合重命名相关的命令:

命令 描述
db.集合名.renameCollection(“新名”) 为该库下的某个集合重命名

​ 这个命令没啥好说的,直接上示例:

> db.coll.renameCollection("newColl")
{ "ok" : 1 }
> show tables
newColl
>
posted @ 2021-03-11 23:39  云崖君  阅读(73)  评论(0编辑  收藏  举报