在 MongoDB 中创建集合
当您在MongoDB中创建数据库时,您的数据库基本上是一个空容器,您可以为其添加一个或多个集合。
在关系数据库中,可以使用 在数据库中创建所需的每个表。CREATE TABLE
但是MongoDB不是一个关系数据库,它将其数据存储为文档。每个文档都存储在一个集合中。
本文介绍如何在MongoDB中创建集合。
两种选择
在MongoDB中创建集合有两个选项:
- 含蓄
- 明确
下面是每个示例。
创建集合 – 隐式
只需将文档添加到不存在的集合,即可隐式创建集合。执行此操作时,如果集合尚不存在,则会创建该集合。
下面是隐式创建集合的示例:
db.pets.insert({ name: "Fetch" })
这将创建一个名为 的集合,并在其中插入一个文档。pets
实际上,它仅在集合不存在时才创建集合。如果它已存在,则只需将文档插入到该名称的现有集合中。
基本上,语法是这样的:
db.<collection>.insert()
集合的名称在哪里。<collection>
创建集合 – 显式
还可以使用该方法显式创建集合。此方法允许您指定各种选项,例如设置最大大小或文档验证规则。db.createCollection()
这有点类似于SQL中的语句。话虽如此,MongoDB不需要你指定列,数据类型等,就像你在使用关系数据库时需要使用语句指定的那样。[CREATE TABLE](https://database.guide/sql-create-table-for-beginners/ "SQL CREATE TABLE for Beginners")``CREATE TABLE
下面是使用该方法创建集合的示例:db.createCollection()
db.createCollection("employees")
结果:
{ “ok” : 1 }
在此示例中,我没有指定任何选项。因此,像这样创建它并没有真正的好处,就像隐式创建它(如前面的例子一样)。
但是,如果要为集合指定选项,则显式创建集合是可行的方法。
下面是在创建集合时指定一些选项的示例:
db.createCollection(
"products",
{
capped : true,
size : 7500500,
max : 7000
}
)
结果:
{ “ok” : 1 }
以下是我在此示例中提供的选项的说明:
- 该参数允许您指定是否应限制集合的大小(即不允许增长超过特定大小)。如果指定 ,还必须在字段中设置最大大小。
capped``true``size - 该参数设置上限集合的最大大小(以字节为单位)。一旦有上限的集合达到其最大大小,MongoDB就会删除旧文档,以便为新文档腾出空间。该字段对于有上限的集合是必需的,对于其他集合则忽略。
size``size - 该参数允许您指定上限集合中允许的最大文档数。如果一个有上限的集合在达到最大文档数之前达到限制,MongoDB会删除旧文档。因此,请确保参数足以包含使用该参数指定的文档数。
max``size``size``max
这是可以使用该方法指定的三个不同选项。db.createCollection()
语法和更多详细信息
完整的语法(截至撰写本文时)如下所示:
db.createCollection( <name>,
{
capped: <boolean>,
autoIndexId: <boolean>,
size: <number>,
max: <number>,
storageEngine: <document>,
validator: <document>,
validationLevel: <string>,
validationAction: <string>,
indexOptionDefaults: <document>,
viewOn: <string>,
pipeline: <pipeline>,
collation: <document>,
writeConcern: <document>
}
)
请参阅官方MongoDB文档,了解每个选项的详细说明。[db.createCollection()](https://docs.mongodb.com/manual/reference/method/db.createCollection/ "https://docs.mongodb.com/manual/reference/method/db.createCollection/")