MongoDB 创建数据库

在MongoDB中,数据库的创建是一个简单的过程,当你首次向MongoDB中插入数据时,如果数据库不存在,MongoDB会自动创建它。

我们只需选择一个数据库名称,并开始向其中插入文档即可。

语法

当你使用 use 命令来指定一个数据库时,如果该数据库不存在,MongoDB将自动创建它。

MongoDB 创建数据库的语法格式如下:

复制代码
use DATABASE_NAME

如果数据库不存在,则创建数据库,否则切换到指定数据库。

实例

以下实例我们创建了数据库 runoob:

复制代码
> use runoob
switched to db runoob
> db
runoob
> 

执行 use runoob 命令后,MongoDB 将创建名为 runoob 的新数据库。此时,你可以开始在这个数据库中创建集合和插入文档。

如果你想查看所有数据库,可以使用 show dbs 命令:

复制代码
> show dbs
admin   0.000GB
config  0.000GB
local   0.000GB
> 

可以看到,我们刚创建的数据库 runoob 并不在数据库的列表中, 要显示它,我们需要向 runoob 数据库插入一些数据。

复制代码
> db.runoob.insertOne({"name":"菜鸟教程"})
WriteResult({ "nInserted" : 1 })
> show dbs
admin   0.000GB
config  0.000GB
local   0.000GB
runoob  0.000GB

创建集合

创建数据库后,通常需要在其中创建集合(collections),以存储文档(documents)。

集合类似于关系数据库中的表,以下是创建集合的步骤:

使用 use 命令指定数据库。

使用 db.createCollection() 方法创建集合。

实例

use myNewDatabase

db.createCollection("myNewCollection")

上述命令将在 myNewDatabase 数据库中创建一个名为 myNewCollection 的新集合。

查看数据库列表

要查看当前 MongoDB 实例中所有数据库的列表,可以使用 show dbs 命令:

复制代码
show dbs

查看当前数据库

要查看当前正在使用的数据库,可以使用 db 命令:

复制代码
db

删除数据库

如果你需要删除数据库,可以使用 db.dropDatabase() 方法:

复制代码
use myDatabase
db.dropDatabase()

上述命令将删除当前正在使用的 myDatabase 数据库及其所有集合。

默认数据库

MongoDB 中默认的数据库为 test,如果你没有创建新的数据库,集合将存放在 test 数据库中。

当您通过 shell 连接到 MongoDB 实例时,如果未使用 use 命令切换到其他数据库,则会默认使用 test 数据库。

例如,在启动 MongoDB 实例并连接到 MongoDB shell 后,如果您开始插入文档而未显式指定数据库,MongoDB 将默认使用 test 数据库。

实例

use test

db.myCollection.insertOne({ name: "Alice", age: 30 })

在这个例子中,如果 test 数据库不存在,则 MongoDB 将自动创建它。

需要注意的是,默认数据库仅在特定情况下才会使用。在实际开发中,您通常会选择自己创建的数据库来存储数据。

注意: 在 MongoDB 中,集合只有在内容插入后才会创建,就是说,创建集合(数据表)后要再插入一个文档(记录),集合才会真正创建。

注意事项

  • 数据库名不能包含空格、点(.)或美元符号($)。
  • 数据库的创建是自动的,不需要显式创建,除非你需要在创建时指定特定的配置选项。
  • 在MongoDB中,只有在数据库中至少有一个集合时,数据库才会在 show dbs 命令的输出中显示。
相关推荐
bianguanyue3 分钟前
SQLite密码修改故障排查:RSA加密随机性导致的数据库匹配问题
数据库·sqlite·c#
亚马逊云开发者14 分钟前
将 Go 应用从 x86 平台迁移至 Amazon Graviton:场景剖析与最佳实践
linux·数据库·golang
张先shen1 小时前
亿级流量下的缓存架构设计:Redis+Caffeine多级缓存实战
数据库·redis·缓存
~ 小团子2 小时前
每日一SQL 【各赛事的用户注册率】
数据库·sql
llm2009092 小时前
Jmeter的JDBC数据库连接
数据库·jmeter
betazhou2 小时前
SQL server之版本的初认知
数据库·oracle·goldengate·sql server·ogg·gdr
superonion06202 小时前
【DB2】load报错SQL3501W、SQL3109N、SQL2036N
数据库
~ 小团子2 小时前
每日一SQL 【每月交易 I】
数据库·sql
apihz3 小时前
VM虚拟机全版本网盘+免费本地网络穿透端口映射实时同步动态家庭IP教程
android·服务器·开发语言·网络·数据库·网络协议·tcp/ip
UestcXiye3 小时前
Rust Web 全栈开发(五):使用 sqlx 连接 MySQL 数据库
数据库·mysql·rust