MongoDB数据库核心概念

本文涉及的产品
云数据库 MongoDB,独享型 2核8GB
推荐场景:
构建全方位客户视图
云原生数据库 PolarDB PostgreSQL 版,标准版 2核4GB 50GB
云原生数据库 PolarDB MySQL 版,通用型 2核4GB 50GB
简介: MongoDB数据库核心概念1.NoSQL数据库介绍NoSQL意思是不仅仅是sql。NoSQL指的是菲关系型数据库,NoSQL有时称作Not Only SQL的缩写,是对不同于传统的关系型数据的统称。NoSQL就是非关联形式的数据库,数据存储是key value形式。

MongoDB数据库核心概念

1.NoSQL数据库介绍

NoSQL意思是不仅仅是sql。

NoSQL指的是菲关系型数据库,NoSQL有时称作Not Only SQL的缩写,是对不同于传统的关系型数据的统称。

NoSQL就是非关联形式的数据库,数据存储是key value形式。

NoSQL类型的数据存储不需要固定的模式,无需多余操作就可以横向扩展。

2.MongoDB数据库介绍

MongoDB由C++语言编写,是一个基于分布式文件存储的开源数据库系统,是专为可扩展性、高性能和高可用性设计的数据库,是非关系型数据库中功能最丰富,最像关系型数据库,MongoDB的数据结构是json和bjson格式。

MongoDB是可以应用于各种规模的企业,各个行业以及各类应用程序的开源数据库,作为一个适用于敏捷开发的数据库,MongoDB的数据模式可以随着应用程序的发展灵活的更新。

随着应用程序的更新,数据库某张表可能需要增加一个或多个字段,而mysql这种关系型数据库需要修改表结构,并且在更新成千上万条数据,这个过程可能会导致数据库死锁,这种更新字段放到了非关系型数据库mongodb中,就会变得非常简单,只需要添加新字段后,新数据进来时应用即可,旧数据不会有变动,大大减少了数据库的压力。

MongoDB是一种叫做BSON(二进制JSON)的存储形式作为数据存储。

3.MongoDB支持的数据格式

3.1.JSON格式的数据类型

JSON是一种轻量级的数据交换格式,json采用完全独立于语言的文本格式,但是也使用了类似于C语言家族的习惯,这些特性使json成为理想的数据交换语言,易于人阅读和编写,同时也易于机器解析和生成。

MongoDB使用json文档存储记录。

json格式:

{ "id": "f274ef35-05a2-40c6-9b84-ff1e97702300", "version": "7.6.2", "hostname": "nginx-6b949875bc-hrzrp", "ephemeral_id": "1025c85b-df07-4c4b-98d4-f5593293ef0e", "type": "filebeat" }

json格式解析网站:https://www.bejson.com/

3.2.BSON格式

BSON是一种类JSON的二进制形式的存储格式,简称Binary JSON,它和json一样,支持内嵌的文档对象和数组对象,但是BSON有JSON没有的一些数据类型,比如Date和BinData类型。

BSON的优点是灵活性高,但它的缺点就是空间利用率不是很理想。

BSON的特点:轻量性、可遍历性、高效性。

4.MongoDB数据库的特性

高性能

MongoDB提供高性能的数据持久化,尤其是支持嵌入式数据模型减少数据库系统上的I/O操作。

MySQL需要查询10张表,MongoDB一张表就可以搞定。

丰富的语言查询,MongoDB支持丰富的查询语言来进行读写操作以及数据汇总。

高可用性

MongoDB的复制工具是副本集,提供自动故障转移和数据冗余。

MongoDB之前有主从复制,后来的主从复制集群称之为副本集。

水平可扩展性

MongoDB提供可扩展性,作为其核心功能的一部分,分片是将数据分散在一组机器上。

MongoDB副本集扩容也无需像redis需要迁移槽位,MongoDB可以直接扩容

支持多种存储引擎

WiredTiger存储引擎、MMAPv1存储引擎和InMemory引擎。

5.MongoDB程序

MOngoDB Derives:客户端程序

MongoDB Stitch:API服务

MongoDB Atlas:云上部署MongoDB

MongoDB Cloud Manager:管理MongoDB的软件包

MongoDB Charts:可视化图表

6.MongoDB应用场景

游戏场景

使用 MongoDB 存储游戏用户信息,用户的装备、积分等直接以内嵌文档的形式存储,方便查询、更新。

物流场景

使用 MongoDB 存储订单信息,订单状态在运送过程中会不断更新,以 MongoDB 内嵌数组的形式来存储,一次查询就能将订单所有的变更读取出来。

社交场景

使用 MongoDB 存储存储用户信息,以及用户发表的朋友圈信息,通过地理位置索引实现附近的人、地点等功能。

物联网场景

使用 MongoDB 存储所有接入的智能设备信息,以及设备汇报的日志信息,并对这些信息进行多维度的分析。

视频直播

使用 MongoDB 存储用户信息、礼物信息等,用户评论。

电商场景

商城上衣和裤子两种商品,除了有共同属性,如产地、价格、材质、颜色等外,还有各自有不同的属性集,如上衣的独有属性是肩宽、胸围、袖长等,裤子的独有属性是臀围、脚口和裤长等。



相关实践学习
MongoDB数据库入门
MongoDB数据库入门实验。
快速掌握 MongoDB 数据库
本课程主要讲解MongoDB数据库的基本知识,包括MongoDB数据库的安装、配置、服务的启动、数据的CRUD操作函数使用、MongoDB索引的使用(唯一索引、地理索引、过期索引、全文索引等)、MapReduce操作实现、用户管理、Java对MongoDB的操作支持(基于2.x驱动与3.x驱动的完全讲解)。 通过学习此课程,读者将具备MongoDB数据库的开发能力,并且能够使用MongoDB进行项目开发。   相关的阿里云产品:云数据库 MongoDB版 云数据库MongoDB版支持ReplicaSet和Sharding两种部署架构,具备安全审计,时间点备份等多项企业能力。在互联网、物联网、游戏、金融等领域被广泛采用。 云数据库MongoDB版(ApsaraDB for MongoDB)完全兼容MongoDB协议,基于飞天分布式系统和高可靠存储引擎,提供多节点高可用架构、弹性扩容、容灾、备份回滚、性能优化等解决方案。 产品详情: https://www.aliyun.com/product/mongodb
目录
相关文章
|
14天前
|
存储 JSON NoSQL
学习 MongoDB:打开强大的数据库技术大门
MongoDB 是一个基于分布式文件存储的文档数据库,由 C++ 编写,旨在为 Web 应用提供可扩展的高性能数据存储解决方案。它与 MySQL 类似,但使用文档结构而非表结构。核心概念包括:数据库(Database)、集合(Collection)、文档(Document)和字段(Field)。MongoDB 使用 BSON 格式存储数据,支持多种数据类型,如字符串、整数、数组等,并通过二进制编码实现高效存储和传输。BSON 文档结构类似 JSON,但更紧凑,适合网络传输。
49 15
|
22天前
|
存储 NoSQL 关系型数据库
阿里云数据库MongoDB版助力信也科技 打造互联网金融企业样板
我们的风控系统引入阿里云数据库MongoDB版后,解决了特征类字段灵活加减的问题,大大提高了开发效率,极大的提升了业务用户体验,获得了非常好的效果
阿里云数据库MongoDB版助力信也科技 打造互联网金融企业样板
|
2月前
|
NoSQL Cloud Native atlas
探索云原生数据库:MongoDB Atlas 的实践与思考
【10月更文挑战第21天】本文探讨了MongoDB Atlas的核心特性、实践应用及对云原生数据库未来的思考。MongoDB Atlas作为MongoDB的云原生版本,提供全球分布式、完全托管、弹性伸缩和安全合规等优势,支持快速部署、数据全球化、自动化运维和灵活定价。文章还讨论了云原生数据库的未来趋势,如架构灵活性、智能化运维和混合云支持,并分享了实施MongoDB Atlas的最佳实践。
|
3月前
|
NoSQL Cloud Native atlas
探索云原生数据库:MongoDB Atlas 的实践与思考
【10月更文挑战第20天】本文探讨了MongoDB Atlas的核心特性、实践应用及对未来云原生数据库的思考。MongoDB Atlas作为云原生数据库服务,具备全球分布、完全托管、弹性伸缩和安全合规等优势,支持快速部署、数据全球化、自动化运维和灵活定价。文章还讨论了实施MongoDB Atlas的最佳实践和职业心得,展望了云原生数据库的发展趋势。
|
3月前
|
存储 NoSQL MongoDB
MongoDB 数据库引用
10月更文挑战第20天
26 1
|
3月前
|
存储 NoSQL MongoDB
基于阿里云数据库MongoDB版,微财数科“又快又稳”服务超7000万客户
选择MongoDB主要基于其灵活的数据模型、高性能、高可用性、可扩展性、安全性和强大的分析能力。
|
3月前
|
存储 NoSQL MongoDB
mongodb的数据库表怎么创建
在此过程中,理解并掌握这些基本操作,是深入探索MongoDB魅力,乃至构建高效数据解决方案的关键所在。通过实践,您将更加深刻地体会到这种随需应变的数据管理模式带来的便利与效率提升。
53 0
|
11天前
|
存储 Oracle 关系型数据库
数据库传奇:MySQL创世之父的两千金My、Maria
《数据库传奇:MySQL创世之父的两千金My、Maria》介绍了MySQL的发展历程及其分支MariaDB。MySQL由Michael Widenius等人于1994年创建,现归Oracle所有,广泛应用于阿里巴巴、腾讯等企业。2009年,Widenius因担心Oracle收购影响MySQL的开源性,创建了MariaDB,提供额外功能和改进。维基百科、Google等已逐步替换为MariaDB,以确保更好的性能和社区支持。掌握MariaDB作为备用方案,对未来发展至关重要。
39 3
|
11天前
|
安全 关系型数据库 MySQL
MySQL崩溃保险箱:探秘Redo/Undo日志确保数据库安全无忧!
《MySQL崩溃保险箱:探秘Redo/Undo日志确保数据库安全无忧!》介绍了MySQL中的三种关键日志:二进制日志(Binary Log)、重做日志(Redo Log)和撤销日志(Undo Log)。这些日志确保了数据库的ACID特性,即原子性、一致性、隔离性和持久性。Redo Log记录数据页的物理修改,保证事务持久性;Undo Log记录事务的逆操作,支持回滚和多版本并发控制(MVCC)。文章还详细对比了InnoDB和MyISAM存储引擎在事务支持、锁定机制、并发性等方面的差异,强调了InnoDB在高并发和事务处理中的优势。通过这些机制,MySQL能够在事务执行、崩溃和恢复过程中保持
41 3
|
11天前
|
SQL 关系型数据库 MySQL
数据库灾难应对:MySQL误删除数据的救赎之道,技巧get起来!之binlog
《数据库灾难应对:MySQL误删除数据的救赎之道,技巧get起来!之binlog》介绍了如何利用MySQL的二进制日志(Binlog)恢复误删除的数据。主要内容包括: 1. **启用二进制日志**:在`my.cnf`中配置`log-bin`并重启MySQL服务。 2. **查看二进制日志文件**:使用`SHOW VARIABLES LIKE 'log_%';`和`SHOW MASTER STATUS;`命令获取当前日志文件及位置。 3. **创建数据备份**:确保在恢复前已有备份,以防意外。 4. **导出二进制日志为SQL语句**:使用`mysqlbinlog`
53 2