集合操作
约 618 字大约 2 分钟
2025-03-15
一、创建
1、语法
db.createCollection(name, options)
参数说明:
- name: 要创建的集合名称。
- options: 可选参数, 指定有关内存大小及索引的选项。
在插入文档时,MongoDB
首先检查固定集合的 size
字段,然后检查 max
字段。
2、options 参数列表
- capped:布尔值是否创建一个固定大小的集合。例如:
true
- size:数值集合的最大大小(以字节为单位)。仅在
capped
为 true 时有效。例如:10485760
(10MB) - max:数值集合中允许的最大文档数。仅在
capped
为 true 时有效。例如:5000
- validator:对象用于文档验证的表达式。例如:
{ $jsonSchema: { ... }}
- validationLevel:字符串指定文档验证的严格程度。例如:"
strict
""off"
:不进行验证。"strict"
:插入和更新操作都必须通过验证(默认)。"moderate"
:仅现有文档更新时必须通过验证,插入新文档时不需要。
- validationAction字符串 : 指定文档验证失败时的操作。 例如:
error
"error"
:阻止插入或更新(默认)。"warn"
:允许插入或更新,但会发出警告。
- storageEngine:对象为集合指定存储引擎配置。例如:
{ wiredTiger: { ... }}
- collation:对象指定集合的默认排序规则。例如:
{ locale: "en", strength: 2 }
3、例子
db.createCollection("myComplexCollection", {
capped: true,
size: 10485760,
max: 5000,
validator: {
$jsonSchema: {
bsonType: "object",
required: ["name", "email"],
properties: {
name: {
bsonType: "string",
description: "必须为字符串且为必填项",
},
email: {
bsonType: "string",
pattern: "^.+@.+$",
description: "必须为有效的电子邮件地址",
},
},
},
},
validationLevel: "strict",
validationAction: "error",
storageEngine: {
wiredTiger: { configString: "block_compressor=zstd" },
},
collation: { locale: "en", strength: 2 },
});
以上例子创建了一个集合,具有以下特性:
- 固定大小,最大
10MB
,最多存储5000 个
文档。 - 文档必须包含
name
和email
字段,其中name
必须是字符串,email
必须是有效的电子邮件格式。 - 验证级别为严格,验证失败将阻止插入或更新。
- 使用 WiredTiger 存储引擎,指定块压缩器为 zstd。
- 默认使用英语排序规则。
二、查看
显示当前数据库中的所有集合
show collections
三、删除
删除集合
db.集合名.drop()
四、重命名
重命名集合
db.集合名.renameCollection('newName')
# 也可以使用
db.adminCommand({
renameCollection: "sourceDb.sourceCollection",
to: "targetDb.targetCollection",
dropTarget: <boolean>
})
更新日志
2025/8/24 08:17
查看所有更新日志
e7112
-1于