MongoDB 数据库和集合


1 概述

MongoDB将数据记录存储为文档(特别是BSON文档,这些文档收集在集合中。数据库存储一个或多个文档集合。

2 数据库

在MongoDB中,数据库包含一个或多个文档集合。要选择要使用的数据库,请在mongosh中发出语句,如以下示例所示:use <db>

 use myDB

创建数据库

如果数据库不存在,MongoDB会在您首次存储该数据库的数据时创建该数据库。因此,您可以切换到不存在的数据库,并在mongosh中执行以下操作:

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

insertOne()操作将同时创建数据库和集合(如果它们尚不存在)。确保数据库和集合名称都遵循 MongoDB命名限制myNewDBmyNewCollection1

3 集合

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

mongodb集合,mongodb数据库,mongodb创建集合

创建收藏夹

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

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

insertOne()createIndex()操作都会创建各自的集合(如果它们尚不存在)。请确保集合名称遵循 MongoDB命名限制

显式创建

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

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

文档验证

新版本 3.2。

默认情况下,集合不要求其文档具有相同的架构。即,单个集合中的文档不需要具有相同的字段集,并且集合中文档的字段数据类型可能不同。

但是,从MongoDB 3.2开始,您可以在更新和插入操作期间对集合强制实施文档验证规则。有关详细信息,请参阅架构验证

修改文档结构

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

唯一标识符

新版本 3.6。

为集合分配了不可变UUID.集合 UUID 在副本集的所有成员和分片集群中的分片中保持不变。

若要检索集合的 UUID,请运行listCollections命令或db.getCollectionInfos()方法。