云网站开发,wordpress增加访问速度,买空间去哪个网站,免费建立com网站一、MongoDB概述
MongoDB 是一个基于 分布式文件存储 的开源 NoSQL 数据库系统#xff0c;由 C 编写的。MongoDB 提供了 面向文档 的存储方式#xff0c;操作起来比较简单和容易#xff0c;支持“无模式”的数据建模#xff0c;可以存储比较复杂的数据类型#xff0c;是一…一、MongoDB概述
MongoDB 是一个基于 分布式文件存储 的开源 NoSQL 数据库系统由 C 编写的。MongoDB 提供了 面向文档 的存储方式操作起来比较简单和容易支持“无模式”的数据建模可以存储比较复杂的数据类型是一款非常流行的 文档类型数据库 。
在高负载的情况下MongoDB 天然支持水平扩展和高可用可以很方便地添加更多的节点/实例以保证服务性能和可用性。在许多场景下MongoDB 可以用于代替传统的关系型数据库或键/值存储方式皆在为 Web 应用提供可扩展的高可用高性能数据存储解决方案
1、MongoDB的数据结构
MongoDB是面向文档的NoSQL非关系型数据库它的数据结构由字段Field和值Value组成类似于JSON对象
{name:张三,sex:男性,age:30
}
2、MongoDB的存储结构
MongoDB的存储结构区别于传统的关系型数据库由如下三个单元组成 文档DocumentMongoDB中最基本的单元由BSON键值对key-value组成。相当于关系型数据库中的行Row。 集合Collection一个集合可以包含多个文档相当于关系型数据库中的表格Table。 数据库Database等同于关系型数据库中的数据库概念一个数据库中可以包含多个集合。您可以在MongoDB中创建多个数据库。
SQL 与 MongoDB 常见术语对比
SQLMongoDB表Table集合Collection行Row文档Document列Col字段Field主键Primary Key对象 IDObjectid索引Index索引Index嵌套表Embeded Table嵌入式文档Embeded Document数组Array数组Array
二、Databases and Collections
1、概述
MongoDB将数据记录存储为文档特别是BSON文档这些文档在集合中聚集在一起。数据库存储一个或多个文档集合。
2、Databases
在MongoDB中数据库保存一个或多个文档集合。要选择要使用的数据库请在mongosh中使用usedb语句如下例所示
use myDB
3、Create a Database
如果数据库不存在MongoDB将在您首次存储该数据库的数据时创建该数据库。因此您可以切换到不存在的数据库并在mongosh中执行以下操作
use myNewDBdb.myNewCollection1.insertOne( { x: 1 } )
insertOne操作创建数据库myNewDB和集合myNewCollection1如果它们不存在。确保数据库和集合名称都遵循MongoDB命名限制。
3、Collections
MongoDB将文档存储在集合中。集合类似于关系数据库中的表。 4、Create a Collection
如果集合不存在MongoDB会在您首次存储该集合的数据时创建该集合。
db.myNewCollection2.insertOne( { x: 1 } )
db.myNewCollection3.createIndex( { y: 1 } )
insertOne和createIndex操作都会创建各自的集合如果它们不存在。确保集合名称遵循MongoDB命名限制。
5、显式创建
MongoDB提供了db.createCollection方法来显式创建具有各种选项的集合例如设置最大大小或文档验证规则。如果没有指定这些选项则不需要显式创建集合因为MongoDB在首次存储集合的数据时会创建新的集合。
6、Document 验证
默认情况下集合不要求其文档具有相同的架构即单个集合中的文档不需要具有相同的字段集并且字段的数据类型可以在集合中的各个文档中不同。 然而从MongoDB3.2开始您可以在更新和插入操作期间强制集合的文档验证规则。
7、唯一标识符
集合被分配一个不可变的UUID。在副本集的所有成员和碎片集群中的碎片之间集合UUID保持不变。 要检索集合的UUID请运行listCollections命令或db.getCollectionInfos方法。
三、Documents
MongoDB将数据记录存储为BSON文档。BSON是JSON文档的二进制表示尽管它包含的数据类型比JSON多。有关BSON规范请参阅bsonspec.org。另请参阅BSON类型。 1、兼容性
MongoDB将记录存储为在以下环境中托管的部署的文档
MongoDB Atlas云中MongoDB部署的完全托管服务MongoDB Enterprise:MongoDB的基于订阅的自我管理版本MongoDB社区MongoDB的源代码可用、免费使用和自我管理版本
2、Document 结构
MongoDB文档由字段和值对组成结构如下
{field1: value1,field2: value2,field3: value3,...fieldN: valueN
}
字段的值可以是任何BSON数据类型包括其他文档、数组和文档数组。例如以下文档包含各种类型的值
var mydoc {_id: ObjectId(5099803df3f4948bd2f98391),name: { first: Alan, last: Turing },birth: new Date(Jun 23, 1912),death: new Date(Jun 07, 1954),contribs: [ Turing machine, Turing test, Turingery ],views : NumberLong(1250000)}
上述字段具有以下数据类型
_id包含ObjectId。name保存一个嵌入的文档其中包含第一个和最后一个字段。birth and death保留Date类型的值。contribs保存字符串数组。views 保存NumberLong类型的值。