MongoDB作为主流的NoSQL数据库,集合相当于关系型数据库中的表,是存储文档的基本单位。除了插入文档时自动创建集合外,我们也可以通过db.createCollection命令主动创建集合,方便提前定义集合的规则和属性。

db.createCollection基本语法
该命令的基础语法格式如下:
db.createCollection(name, options)
其中name是必填参数,表示要创建的集合名称,需符合MongoDB的命名规范,不能包含空字符,不能以system.开头。options是可选参数,是一个文档类型,用来配置集合的各项属性。
常用options参数说明
以下是options中常用的参数及含义:
| 参数名 | 类型 | 说明 |
|---|---|---|
| capped | 布尔值 | 是否创建固定大小集合,true表示固定集合,需要配合size参数使用 |
| size | 数值 | 固定集合的最大大小,单位是字节,capped为true时必填 |
| max | 数值 | 固定集合最多可存储的文档数量,可选参数 |
| validator | 文档 | 集合的校验规则,用来限制插入文档的结构和数据类型 |
| validationLevel | 字符串 | 校验级别,可选值有off、strict、moderate |
使用示例
示例1:创建普通集合
创建一个名为user的普通集合,不需要额外配置参数:
// 切换到目标数据库
use test_db
// 创建普通集合
db.createCollection("user")
// 查看当前数据库的所有集合
show collections示例2:创建固定大小集合
创建一个名为log的固定集合,最大大小为10240字节,最多存储100条文档:
db.createCollection("log", {
capped: true,
size: 10240,
max: 100
})示例3:创建带校验规则的集合
创建一个名为student的集合,要求插入的文档必须包含name字段(字符串类型)和age字段(数值类型,且年龄在1到100之间):
db.createCollection("student", {
validator: {
$and: [
{ name: { $type: "string" } },
{ age: { $type: "number", $gte: 1, $lte: 100 } }
]
},
validationLevel: "strict"
})注意事项
- 如果创建的集合名称已经存在,会抛出错误,需要确认集合不存在后再创建,或者先删除已有集合
- 固定集合一旦创建,大小无法修改,如果需要调整大小,只能删除后重新创建
- 校验规则只在插入和更新文档时生效,已存在的文档不会被校验规则影响
- 如果不需要提前定义集合规则,也可以直接插入文档,MongoDB会自动创建对应的集合
建议在实际开发中,如果需要明确集合的结构和存储限制,尽量使用
db.createCollection主动创建集合,避免后续出现数据不规范或者存储异常的问题。
MongoDBdb.createCollection集合创建NoSQL数据库操作修改时间:2026-05-30 20:33:12