数据库与集合
约 531 字大约 2 分钟
布欧-Lewyon
2026-05-15
首页 › MongoDB › 安装与配置(在新窗口打开) › 数据库与集合
数据库
MongoDB 中数据库是集合的容器。数据库通过 use 隐式创建。
// 切换到(或创建)数据库
use mydb
// 查看当前数据库
db
// 所有数据库列表
show dbs
// mydb 不会出现,直到插入数据系统数据库
| 数据库 | 用途 |
|---|---|
admin | 认证和授权 |
local | 存放本地数据(oplog 等),不参与复制 |
config | 分片集群的配置信息 |
数据库命名限制
- 不能是空字符串。
- 不能包含
/、\、.、"、$、\0。 - 最多 64 字节。
集合
集合类似关系型数据库中的表,但没有固定 Schema。
// 隐式创建(插入文档时自动创建集合)
db.users.insertOne({ name: "Alice" })
// 显式创建(可指定选项)
db.createCollection("logs", {
capped: true, // 固定大小集合
size: 1048576, // 最大字节数
max: 5000 // 最大文档数
})
// 查看集合列表
show collections
// 或
db.getCollectionNames()
// 查看集合统计
db.users.stats()
// 删除集合
db.users.drop()固定大小集合(Capped Collection)
db.createCollection("recent_logs", {
capped: true,
size: 1048576, // 1MB
max: 10000
})
// 插入超过限制后,自动淘汰最旧的文档
db.recent_logs.insertOne({ msg: "startup", level: "info" })| 特性 | 说明 |
|---|---|
| 插入顺序 | 按插入顺序存储 |
| 淘汰策略 | 超过大小时自动删除最旧文档 |
| 不可删除 | 只能删除整个集合 |
| 不可更新 | 不能更新,使文档大小增加 |
文档验证
MongoDB 3.2+ 支持文档 Schema 验证:
db.createCollection("users", {
validator: {
$jsonSchema: {
bsonType: "object",
required: ["name", "email"],
properties: {
name: {
bsonType: "string",
description: "must be a string and is required"
},
email: {
bsonType: "string",
pattern: "^.+@.+$",
description: "must be a valid email"
},
age: {
bsonType: "int",
minimum: 0,
maximum: 150
}
}
}
}
})小结
- 数据库是集合容器,
use databaseName隐式创建。 - 集合类似表但无固定 Schema,
db.createCollection()可指定选项。 - Capped Collection 固定大小,按插入顺序淘汰最旧文档,适合日志场景。
- 文档验证(
$jsonSchema)可在数据库层强制执行 Schema 约束。 show dbs/show collections/db.stats()查看元信息。
上一节:安装 MongoDB 与 mongosh 下一节:插入文档
