文档菜单
文档首页
/
MongoDB 手册
/

MongoDB 中的数据库和集合

本页内容

  • 概述
  • 数据库
  • 集合

MongoDB 以以下方式存储数据记录文档(特别是 BSON 文档)被收集到 集合 中。数据库存储一个或多个文档集合。

您可以从以下方式管理:数据库集合,在 Atlas 集群中,通过 Atlas UI,mongoshMongoDB Compass。此页描述了如何通过 Atlas UI 管理Atlas集群中的数据库和集合。对于自管理的部署,您可以使用 mongoshMongoDB Compass来管理数据库和集合。

选择您想要用于管理数据库和集合的客户端。

MongoDB Atlas 是一种多云数据库服务,可简化在您选择的云服务提供商上部署和管理数据库。

MongoDB Shell,mongosh,是一个用于与 MongoDB 部署交互的 JavaScript 和 Node.jsREPL 环境。有关更多信息,请参阅 mongosh。

MongoDB Compass 是一个强大的图形用户界面,用于在可视化环境中查询、聚合和分析您的 MongoDB 数据。有关更多信息,请参阅 MongoDB Compass。

在 MongoDB 中,数据库包含一个或多个文档集合。

要选择要使用的数据库,请登录到 Atlas 并执行以下操作

1
2

要选择要使用的数据库,在 mongosh 中,使用 use <db> 语句,例如以下示例

use myDB

要选择要使用的数据库,请完成以下步骤

1

了解更多信息,请参阅 连接到 MongoDB。

2

点击数据库选项卡,即可列出您的MongoDB部署中的现有数据库。

要创建一个新的数据库,请登录到Atlas并执行以下操作:

1
2
3

输入数据库和集合名称以创建数据库及其第一个集合。

4

创建成功后,数据库和集合将在Atlas UI的左侧面板中显示。

如果数据库不存在,MongoDB会在您第一次为该数据库存储数据时创建数据库。因此,您可以切换到不存在的数据库,并在mongosh:

use myNewDB
db.myNewCollection1.insertOne( { x: 1 } )

insertOne()操作会在数据库myNewDB和集合myNewCollection1不存在时创建它们。请确保数据库和集合名称遵循MongoDB 命名限制

1
2
3
4

MongoDB 在集合中存储文档。集合类似于关系数据库中的表。

A collection of MongoDB documents.
点击放大

如果集合不存在,MongoDB会在您首次存储该集合的数据时创建该集合。

要创建一个新的集合,请登录到Atlas并执行以下操作:

1
2
3
4

创建成功后,集合将在 Atlas UI 中的数据库下方显示。

db.myNewCollection2.insertOne( { x: 1 } )
db.myNewCollection3.createIndex( { y: 1 } )

如果集合不存在,则 insertOne()createIndex() 操作将分别创建它们各自的集合。请确保集合名称符合 MongoDB 命名限制

1
2
3
4

要创建一个新的集合,请登录到Atlas并执行以下操作:

1
2
3
4

您可以创建以下类型之一的集合

  • 限制集合

    如果您选择创建限制集合,请指定最大字节数。

  • 时间序列集合

    如果您选择创建时间序列集合,请指定时间字段和粒度。您可以可选地指定元字段和集合中旧数据的过期时间。

  • 群集索引集合

    如果您选择创建群集集合,您必须指定群集索引键值和群集索引的名称。

5

创建成功后,集合将在 Atlas UI 中的数据库下方显示。

MongoDB 提供了 db.createCollection() 方法来显式创建集合,并设置各种选项,例如设置最大大小或文档验证规则。如果您没有指定这些选项,则不需要显式创建集合,因为 MongoDB 在您第一次为集合存储数据时会自动创建新集合。

要修改这些集合选项,请参阅 collMod

1
2
3
4

MongoDB Compass为您的集合提供了以下可配置的附加首选项

默认情况下,集合不需要其文档具有相同的模式;即单个集合中的文档不需要具有相同的字段集合,字段的数据类型也可以在集合内的文档中不同。

但是,您可以在更新和插入操作期间为集合强制执行文档验证规则。有关详细信息,请参阅模式验证

对于托管在MongoDB Atlas中的部署,性能顾问和MongoDB Atlas UI可以检测常见的模式设计问题,并提出遵循MongoDB最佳实践的修改建议。有关更多信息,请参阅模式建议

要更改集合中文档的结构,例如添加新字段、删除现有字段或将字段值更改为新类型,请将文档更新为新结构。

集合被分配了一个不可变的 UUID。集合 UUID 在副本集和分片集群的所有分片中保持不变。

要获取集合的 UUID,运行 listCollections 命令或 db.getCollectionInfos() 方法。

返回

入门