常见问题
不使用 shell 也能创建 MongoDB 数据库吗?
可以。您可以使用 MongoDB Compass 等工具,通过 Python 或 JavaScript 等语言以编程方式,或通过 Mongoose 等 API 来创建 MongoDB 数据库。
MongoDB 实际上何时会创建数据库?
MongoDB 只有在插入数据时才会创建数据库——可以是创建集合或插入文档。
在插入文档之前是否必须显式创建集合?
不需要。插入第一条文档时,MongoDB 会自动创建数据库和集合。
如果我把 MongoDB 的数据库名或集合名打错了会发生什么?
MongoDB 会在没有提示的情况下,以错误的名称创建一个新数据库或集合,这可能导致混淆或数据问题。
MongoDB 在数据库名和集合名方面是否区分大小写?
是的,MongoDB 中的数据库名和集合名区分大小写,因此 “Employees” 和 “employees” 会被视为不同。
如何检查我的 MongoDB 数据库是否已成功创建?
在插入数据后使用 show dbs 命令,可以查看数据库列表,包括任何新创建的数据库。
创建后还能删除 MongoDB 数据库吗?
可以。您可以在 shell 中使用 db.dropDatabase() 命令删除一个 MongoDB 数据库。
按照这些步骤操作是否必须拥有 MongoDB Atlas 账户?
不需要。本地安装的 MongoDB Community 或 Enterprise 版本也可以按相同流程操作。
_id 字段在 MongoDB 文档中的作用是什么?
MongoDB 会为每个文档自动创建一个唯一的 _id 字段,除非您自己指定,它将作为主键使用。
是否有可视化 MongoDB 数据库的工具?
是的,MongoDB Compass 等工具以及 Robo 3T 等第三方 GUI 可以帮助您直观地管理数据库。

作者
Nic Raboy
Nic Raboy 是 MongoDB 的开发者关系主管,带领一支由 Python、Java、C# 与 PHP 开发者组成的团队,创作优质内容,帮助开发者在项目中成功使用 MongoDB。他具备 Golang 与 JavaScript 经验,并常常撰写自己在开发过程中的见闻与实践。
您已经确定 MongoDB 是您应用的最佳数据库选择,但还不太清楚如何让数据库启动并运行。您来对地方了,更好的消息是,这不到一分钟就能完成。
这里假设您已经部署了一个 MongoDB Atlas、MongoDB Community Edition 或 MongoDB Enterprise Edition 集群。
为便于演示,我们将使用 MongoDB Shell,不过迁移到其他工具和编程语言时几乎没有区别。您也可以查看这段简短的视频讲解,了解如何在 MongoDB 实例中创建数据库。
连接到集群后,您可以执行如下操作:
在上述示例中,"dbinc" 是我们要使用的数据库。不过,
use函数只会更改上下文,并不会真正创建数据库。与其他数据库工具不同,MongoDB 只有在存储数据时才会创建数据库。这可能发生在您创建集合或创建第一条文档时。
例如,请看下面的操作:
上述命令会创建一个名为 "dbinc" 的数据库以及一个名为 "employees" 的集合。但需要说明的是,在创建文档之前,您并不需要显式创建集合。
您可以通过执行以下命令来验证数据库是否已创建:
再举一个稍有不同的例子:
在上面的示例中,"dbinc" 是我们的数据库,"employees" 是我们的集合,但如果两者都不存在,那么在插入数据时都会被创建。如果其中任一已存在,也没问题。我们只是向其中添加新文档。
虽然不在本文的范围内,但值得注意的是,如果没有指定,MongoDB 会为您创建一个
_id值。无需担心主键定义。在使用 MongoDB 数据库时,您需要留意以下一些常见陷阱。
use(“db_name”)会创建数据库,因为它不会。请记住,您必须先创建集合或添加数据。只要避免以上常见陷阱,在 MongoDB 中创建和使用数据库就会非常轻松。
结论
在 MongoDB 中创建数据库并不困难,也无需在处理数据之前就为此担心,因为 MongoDB 中的数据库只有在创建集合——或者大多数情况下,创建文档——时才会被创建。
需要更全面、包含更多工具的示例吗?请在 MongoDB 博客中查看如何创建 MongoDB 数据库的所有细节。
如果您从事数据科学或类似岗位,不妨看看这门课程:Introduction to MongoDB in Python。