数据库,集合,文档是MongoDB的重要组成部分,没有它们,您将无法在MongoDB服务器上存储数据。数据库包含一个集合,而一个集合包含一个文档,而这些文档包含数据,它们是相互关联的。
数据库
在MongoDB中,数据库包含文档的集合。一个人可以在MongoDB服务器上创建多个数据库。
查看数据库:
要查看您的MongoDB服务器中存在多少个数据库,请在mongo shell中编写以下语句:
show dbs
例如:
在这里,我们重新启动了MongoDB,因此除了这三个默认数据库(即admin,config和local)之外,没有其他数据库。
数据库的命名限制:
在创建数据库之前,您应该首先了解数据库的命名限制:
- 在MongoDB中,数据库名称不区分大小写,但是您必须始终记住,数据库名称不能仅因字符的大小写而不同。
- 对于Windows用户,MongoDB数据库名称不能包含以下任何字符:
/\. "$*:|?
- 对于Unix和Linux用户,MongoDB数据库名称不能包含以下任何字符:
/\. "$
- MongoDB数据库名称不能包含空字符(在Windows,Unix和Linux系统中)。
- MongoDB数据库名称不能为空,并且必须包含少于64个字符。
创建数据库:
在mongo shell中,您可以借助以下命令来创建数据库:
use database_name
如果给定名称不存在并且给定名称存在,此命令实际上会将您切换到新数据库,然后它将切换到现有数据库。现在,在此阶段,如果使用show命令查看数据库列表,则会发现该数据库列表中不存在新数据库,因为在MongoDB中,当您开始在该数据库中输入数据时实际上已创建了该数据库。
例如:
在这里,我们使用use命令创建一个名为GeeksforGeeks的新数据库。在创建数据库后,当我们检查数据库列表时,由于没有在GeeksforGeeks数据库中输入任何数据,因此在该列表中找不到数据库。
收藏
集合就像关系数据库中的表一样,它们也存储数据,但是以文档的形式。一个数据库可以存储多个集合。
无模式:
众所周知,MongoDB数据库是无模式的。因此,在集合中不必一个文档的架构类似于另一个文档。换句话说,单个集合包含不同类型的文档,如下面的示例所示,其中mystudentData
集合包含两种不同类型的文档:
命名限制:
在创建集合之前,您应该首先了解集合的命名限制:
- 集合名称必须以下划线或字符开头。
- 集合名称不包含$,空字符串,空字符,也不以系统开头。字首。
- 集合名称的最大长度为120个字节(包括数据库名称,点分隔符和集合名称)。
创建集合:
创建数据库后,我们现在创建一个集合来存储文档。该集合是使用以下语法创建的:
db.collection_name.insertOne({..})
在这里, insertOne()
函数用于将单个数据存储在指定的集合中。在花括号{}
我们存储数据,或者换句话说,它是一个文档。
例如:
在此示例中,我们创建一个名为Author的集合,并在insertOne()
函数的帮助下将数据插入其中。换句话说, {name: "Ankita"}
是Author集合中的一个文档,在此文档中,名称是键或字段,而“ Ankita”是该键或字段的值。按下回车键后,我们收到一条消息(如上图所示),该消息告诉我们数据已成功输入(即“确认”:true),并且还为我们分配了一个自动创建的ID。 MongoDB提供的特殊功能是每个文档都提供一个唯一的ID,通常,此ID是自动创建的,但是您可以创建自己的ID(必须是唯一的)。
文档
在MongoDB中,数据记录存储为BSON文档。在这里,BSON代表JSON文档的二进制表示,尽管与JSON相比,BSON包含更多的数据类型。使用字段值对或键值对创建文档,并且字段值可以是任何BSON类型。
句法:
{
field1: value1
field2: value2
....
fieldN: valueN
}
字段命名限制:
在继续进行下一步之前,您应该了解字段的命名限制:
- 字段名称是字符串。
- _id字段名称保留为用作主键。并且该字段的值必须是唯一的,不可变的,并且可以是数组以外的任何类型。
- 字段名称不能包含空字符。
- 顶级字段名称不应以美元符号(
$
)开头。
文档大小: BSON文档的最大大小为16MB。这样可以确保单个文档在传输过程中不会占用过多的RAM或带宽。如果文档包含的数据多于指定大小,则MongoDB提供GridFS API来存储此类文档。
重要笔记 –
- 单个文档可能包含重复的字段。
- MongoDB始终保存文档中字段的顺序,但
_id
字段(始终排在第一位)除外,并且字段的重命名可能会更改文档中字段的顺序。 - _id字段:在MongoDB中,集合中的每个文档存储都必须包含一个唯一的
_id
字段,就像在关系数据库中的主键一样。_id
字段的值可以由用户或系统设置(如果用户未创建_id字段,则系统将自动为_id字段生成ObjectId
)。- 创建集合时,MongoDB会自动在_id字段上创建唯一索引。
- _id字段是每个文档的第一个字段。
- _id字段的值可以是除阵列以外的任何BSON类型。
- _id字段的默认值为
ObjectId
。
范例1:
在这里,是字符串类型的名称,分支,课程和付费字段别名值。数量字段包含整数类型的值,并且_id字段由系统生成。
范例2:
在此, _id
字段由用户创建。
提示:在函数中粘贴数据时,在将数据粘贴到函数中后,请始终使用右括号。如果在将数据粘贴到函数中之前使用右括号,则会出现错误。