创建集合和删除

创建集合

要创建集合,首先同样需要先切换到目标数据库。

基本创建方式

db.createCollection("集合名")Code language: JavaScript (javascript)

查看当前数据库的集合

show collections

创建集合时配置参数

创建集合时可以传入可选参数来控制集合的行为。

db.createCollection(
"集合名称",
{ capped : true, autoIndexId : true, size : 6142800, max : 10000 }
)Code language: CSS (css)

各参数说明如下:

capped 布尔(可选)。如果为 true,则创建固定集合。固定集合是指有着固定大小的集合,当达到最大值时,会自动覆盖最早的文档。当该值为 true 时,必须指定 size 参数。

autoIndexId 布尔(可选)。如为 true,自动在 _id 字段创建索引。默认为 false。

size 数值(可选)。为固定集合指定一个最大值,以字节计。如果 capped 为 true,也需要指定该字段。

max 数值(可选)。指定固定集合中包含文档的最大数量。


插入文档时自动创建集合

MongoDB 支持在插入文档时如果集合不存在,会自动创建该集合。

> db.student.insert({name:"张飞"})
WriteResult({ "nInserted" : 1 })
> show collections
department
grade
studentCode language: JavaScript (javascript)

固定集合 max 参数示例

下面演示 max 参数限制文档数量的效果。注意这里 max 限制的是文档条数,实际行为取决于 MongoDB 版本和存储引擎,部分场景下需要配合 capped 和 size 参数才会严格触发自动覆盖。

> db.createCollection("account2",{max:2})
{ "ok" : 1 }
> db.account2.insert({name:"abc"})
WriteResult({ "nInserted" : 1 })
> db.account2.insert({name:"efg"})
WriteResult({ "nInserted" : 1 })
> db.account2.insert({name:"hij"})
WriteResult({ "nInserted" : 1 })
> db.account2.insert({name:"hijdd"})
WriteResult({ "nInserted" : 1 })
> db.account2.find()
{ "_id" : ObjectId("5c2df85dd1c6d35ed4adfb4b"), "name" : "abc" }
{ "_id" : ObjectId("5c2df862d1c6d35ed4adfb4c"), "name" : "efg" }
{ "_id" : ObjectId("5c2df868d1c6d35ed4adfb4d"), "name" : "hij" }
{ "_id" : ObjectId("5c2df878d1c6d35ed4adfb4e"), "name" : "hijdd" }Code language: JavaScript (javascript)

说明:上述示例中 max 设为 2,但插入了 4 条文档后查询仍然返回全部记录。这是因为仅设置 max 而未配合 capped 和 size 时,MongoDB 不会自动淘汰旧文档。如果需要严格限制集合大小并自动覆盖旧数据,应同时指定 capped 和 size 参数。

正确用法示例:

db.createCollection("account2", { capped : true, size : 6142800, max : 2 })Code language: CSS (css)

常用命令速查

操作命令
创建集合db.createCollection(“集合名”)
查看集合show collections
插入文档(自动创建集合)db.集合名.insert({字段:值})
创建固定集合db.createCollection(“名”,{capped:true,size:字节数,max:文档数})

删除集合

删除集合前需要先切换到对应的数据库,然后执行删除命令。

删除指定集合

db.集合名.drop()Code language: CSS (css)

示例

db.mycol.drop()Code language: CSS (css)

验证删除结果

删除后可以通过 show collections 再次查看当前数据库中的集合列表,确认集合是否已被移除。

show collections

返回结果中不再出现 mycol 即表示删除成功。删除成功返回 true,集合不存在或删除失败返回 false。

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注