🏝️ 博主介绍
大家好,我是 一个搬砖的农民工,很高兴认识大家 😊 ~
👨🎓 个人介绍:本人是一名后端Java开发工程师,坐标北京 ~
🎉 感谢关注 📖 一起学习 📝 一起讨论 🌈 一起进步 ~
🙏 作者水平有限,欢迎各位大佬指正留言,相互学习进步 ~
目录
🌱 在数据库的世界里,MongoDB和MySQL是两种非常流行且功能强大的数据库系统,但它们各自的设计哲学、应用场景以及数据模型存在显著差异。对于数据库初学者来说,了解这些差异有助于更好地选择适合自己的工具,并深入理解数据库的基本原理。本文将带领你踏入MongoDB的世界,并通过与MySQL的对比,帮助你快速上手MongoDB。🍂
1. 概述 🚀
- ⭐ MongoDB :MongoDB是一个基于分布式文件存储的开源NoSQL数据库系统,由C++编写而成。与传统的关系型数据库不同,MongoDB采用了面向文档的存储方式,支持“无模式”的数据建模,能够存储比较复杂的数据类型。这使得MongoDB在处理半结构化和非结构化数据时,表现得尤为出色,如日志、社交媒体数据等。MongoDB属于NoSQL(Not Only SQL)数据库的一种。它采用键值存储的方式来存储数据,是一种类似于JSON 的 格式叫BSON(Binary JSON),虽然我们平时看到的文档都是JSON格式呈现,但在内部是以BSON格式存储的。MongoDB特别适合处理大规模数据集、高并发读写、以及需要灵活数据模型的应用场景。
- ⭐ MySQL:MySQL是一个流行的关系型数据库管理系统(RDBMS),使用标准的SQL语言来管理数据。它遵循ACID(原子性、一致性、隔离性、持久性)原则,适合需要事务处理、强一致性保证和复杂查询的应用场景。
2. 数据模型与存储 🚀
✨ MongoDB的数据模型:
- ⭐ 数据库(Database):包含多个集合,类似于关系型数据库中的数据库。
- ⭐ 集合(Collection):集合是文档的集合,相当于关系型数据库中的表,但不需要定义结构。
- ⭐ 文档(Document):MongoDB的基本单位是文档,文档是JSON格式的键值对集合,其内部格式为BSON。一个文档可以嵌套其他文档或数组,非常灵活。
✨ MySQL的数据模型:
- ⭐ 数据库(Database):数据库是表的容器,提供了命名空间、访问控制和数据完整性的机制
- ⭐ 表(Table):由行和列组成的二维数据结构,每列都有固定的数据类型和约束。
- ⭐ 行(Row):表中的一条记录。
- ⭐ 列(Column):表中的字段,定义了数据的类型和属性。
3. MongoDB 常用命令 🚀
- ⭐ 启动MongoDB(windows):首先进入MongoDB目录下创建
data/db
文件夹,然后进入bin目录下面,执行mongod --dbpath=../data/db
- ⭐ 连接MongoDB(windows):进入MongoDB的bin目录下执行
mongo --host=localhost --port=27017
或者mongo
- ⭐ 连接MongoDB(linux):进入MongoDB的/usr/bin目录下执行
mongosh --host localhost --port 27017 -u root
或者mongosh
- ⭐ 创建数据库:
use 数据库
示例:use mydb。如果mydb不存在则创建它,存在则进入该数据库
- ⭐ 删除数据库:
db.dropDatabase()
- ⭐ 查看当前数据库:
db
- ⭐ 查看所有数据库:
show dbs
- ⭐ 创建集合:
db.createCollection("集合")
示例:db.createCollection(“mycollection”)
- ⭐ 删除集合:
db.集合.drop()
示例:db.mycollection.drop()
- ⭐ 插入文档(单个):
db.集合.insert(json数据)
示例:db.collection_08.insert({“name”:“小张”,“age”:18})
- ⭐ 插入文档(多个):
db集合.insertMany([json数据])
||db集合.insert([json数据])
示例:db.collection_08.insertMany([{“name”:“小张”,“age”:18},{“name”:“小张”,“age”:18,“hight”:“178cm”}])
- ⭐ 查询文档:
db.集合.find()
(示例:db.collection_08.find()
) - ⭐ 查询指定字段:
db.集合