MongoDB 创建集合

本文涉及的产品
云数据库 MongoDB,独享型 2核8GB
推荐场景:
构建全方位客户视图
简介: 10月更文挑战第13天

本章节我们为大家介绍如何使用 MongoDB 来创建集合。

MongoDB 中使用 createCollection() 方法来创建集合。

语法格式:

db.createCollection(name, options)

参数说明:

  • name: 要创建的集合名称。
  • options: 可选参数, 指定有关内存大小及索引的选项。

options 可以是如下参数:

参数名 类型 描述 示例值
capped 布尔值 是否创建一个固定大小的集合。 true
size 数值 集合的最大大小(以字节为单位)。仅在 capped 为 true 时有效。 10485760 (10MB)
max 数值 集合中允许的最大文档数。仅在 capped 为 true 时有效。 5000
validator 对象 用于文档验证的表达式。 { $jsonSchema: { ... }}
validationLevel 字符串 指定文档验证的严格程度。<br>"off":不进行验证。<br>"strict":插入和更新操作都必须通过验证(默认)。<br>"moderate":仅现有文档更新时必须通过验证,插入新文档时不需要。 "strict"
validationAction 字符串 指定文档验证失败时的操作。<br>"error":阻止插入或更新(默认)。<br>"warn":允许插入或更新,但会发出警告。 "error"
storageEngine 对象 为集合指定存储引擎配置。 { wiredTiger: { ... }}
collation 对象 指定集合的默认排序规则。 { locale: "en", strength: 2 }

在插入文档时,MongoDB 首先检查固定集合的 size 字段,然后检查 max 字段。

使用这些选项创建一个集合的实例:

实例

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 个文档。
  • 文档必须包含 nameemail 字段,其中 name 必须是字符串,email 必须是有效的电子邮件格式。
  • 验证级别为严格,验证失败将阻止插入或更新。
  • 使用 WiredTiger 存储引擎,指定块压缩器为 zstd。
  • 默认使用英语排序规则。

实例

在 test 数据库中创建 runoob 集合:

> use test

switched to db test

> db.createCollection("runoob")

{ "ok" : 1 }

>

如果要查看已有集合,可以使用 show collectionsshow tables 命令:

> show collections

runoob

system.indexes

下面是带有几个关键参数的 createCollection() 的用法:

创建了一个固定大小的集合,最大大小为 5MB(5242880 字节),最多存储 5000 个文档。

db.createCollection("myCappedCollection", { capped: true, size: 5242880, max: 5000 });

在 MongoDB 中,你不需要创建集合,当你插入一些文档时,MongoDB 会自动创建集合。

> db.mycol2.insert({"name" : "菜鸟教程"})

> show collections

mycol2

...

创建了一个最大大小为 1MB(1048576 字节)的固定大小集合:

db.createCollection("myCappedCollection", { capped: true, size: 1048576 });

以下例子为 myCollection 集合创建了一个验证器,要求文档中必须有 name 和 age 字段,且 name 必须是字符串,age 必须是非负整数。

实例

db.createCollection("myCollection", {

 validator: { $jsonSchema: {

   bsonType: "object",

   required: ["name", "age"],

   properties: {

     name: {

       bsonType: "string",

       description: "必须为字符串且为必填项"

     },

     age: {

       bsonType: "int",

       minimum: 0,

       description: "必须为整数且为必填项"

     }

   }

 }}

});

目录
相关文章
|
11月前
|
NoSQL MongoDB 数据库
MongoDB 删除集合
10月更文挑战第14天
301 1
|
6月前
|
NoSQL 关系型数据库 MongoDB
微服务——MongoDB常用命令——集合操作
本节主要介绍MongoDB中的集合操作,包括显式与隐式创建集合的方法。显式创建使用`db.createCollection(name)`,需遵循命名规范(如不能以&quot;system.&quot;开头或包含`\0`字符)。隐式创建则通过直接向不存在的集合插入文档实现,更为常用。此外,还介绍了集合删除方法`db.collection.drop()`及其返回值规则,帮助用户管理数据库中的集合资源。
231 0
|
10月前
|
缓存 NoSQL MongoDB
|
存储 NoSQL 数据管理
揭秘MongoDB时间序列集合:这个超级功能将如何彻底改变你的数据管理?
【8月更文挑战第8天】时间序列数据记录随时间变化的信息,在数据库管理中至关重要。MongoDB自4.0版起引入时间序列集合,专为这类数据优化存储与查询。通过问答形式介绍其特点:自动数据过期、高效存储机制及快速查询操作。创建时需指定时间字段及可选元数据字段。支持设置数据过期时间,采用粗粒度索引减少I/O操作。查询时可通过时间范围筛选数据,并利用聚合框架进行数据分析。随着实时分析需求的增长,时间序列集合的应用将更加广泛。
643 1
|
NoSQL 安全 MongoDB
精准数据清理:掌握 MongoDB 删除集合的方法与最佳实践
精准数据清理:掌握 MongoDB 删除集合的方法与最佳实践
579 0
|
存储 NoSQL MongoDB
MongoDB 集合创建指南:命名规范、索引优化和数据模型设计
MongoDB 集合创建指南:命名规范、索引优化和数据模型设计
385 0
|
NoSQL MongoDB 数据库
04 MongoDB - 集合操作
04 MongoDB - 集合操作
118 0
|
NoSQL MongoDB 数据库
开心档 - 软件开发入门之 MongoDB 创建集合
本章节我们为大家介绍如何使用 MongoDB 来创建集合。MongoDB 中使用 createCollection() 方法来创建集合。语法格式:
开心档 - 软件开发入门之 MongoDB 创建集合
|
NoSQL MongoDB 数据库
MongoDB常用的操作(服务器、数据库、集合)
MongoDB常用的操作(服务器、数据库、集合)
2911 0
|
NoSQL MongoDB Cloud Native
【mongo 系列】mongodb 学习十一,MongoDB 分片集群之分片集合
MongoDB 中 分片集群有专门推荐的模式,例如 分片集合
217 0

推荐镜像

更多