MongoDB
什么是mongodb?
Mongodb结构
MongoDB内部
提供什么
经常出现在
什么是mongodb?
MongoDB 是一个开源的、非关系型的、基于文档的数据库,广泛应用于现代软件应用程序。它由 MongoDB Inc. 于 2009 年开发,并发布了多个版本,当前版本是 5.0.5,于 2021 年 12 月 6 日发布。
Mongodb 使用 C++、Go、JavaScript 和 Python 作为开发语言。Mongodb 可用于多种 Web 应用程序,并且支持多种语言,主要是 JavaScript,因为 Mongodb 数据模型大量使用 JavaScript 来修改这些文档,而使用 JavaScript 则很容易。
Mongodb 数据库以其高性能、高可用性和可扩展性而闻名。Mongodb 是跨平台的,因此开发人员可以轻松地专注于为多个平台进行开发。
Mongodb结构
MongoDB 有几种主要的数据库类型可供我们根据开发需求选择。它们是:
本地开发
开发人员可以使用此版本的 MongoDB 数据库进行本地开发或开发独立应用程序。我们可以使用此版本的 MongoDB 来创建类似待办事项列表和日历的应用程序,以及适用于 Android 和 iOS 平台的移动应用程序。
我们可以将 MongoDB 本地开发环境用于我们的应用程序,不受限制地使用,并充分利用我们的存储设备容量。
云开发
对于云开发或分布式 Web 应用开发,以及基于 Web 的移动和桌面应用程序开发,我们可以使用 MongoDB 的云数据库版本 MongoDB Atlas。因此,您的开发团队可以使用他们的 MongoDB Atlas 身份验证进行开发,以参与 Web 应用程序的开发。
我们可以使用云开发环境进行事务处理,该环境拥有 100 个连接和 512MB 的免费云数据存储容量。
当我们的应用程序流行起来并且我们必须扩大规模时,mongodb atlas 可以根据要求扩展容量。
MongoDB内部
以上两种类型都采用相同的数据库架构,但在数据存储方法方面有所不同,一种涉及操作系统存储,另一种使用云的 api 调用。
-
每个 mongodb 数据库都有集合。这类似于 mysql 数据库的表。
-
每个收藏品都有记录,即文件。
-
每个文档都包含类似 JSON 对象中的键值对,但其中的键也被引用。
-
这些键值对定义了记录。
例如:
{
"_id": "5ewr3122rwer12323123",
"name": "John Doe" ,
"username": "JohnsDoe123",
"email": "johndoe123@abc.xyz"
}
但是每个文档都包含如何唯一地标识一个文档(对象),这被称为 objectID 或 id,就像示例中提到的“_id”:“5ewr3122rwer12323123”。
这些值可以采用字符串、数组、其他对象、日期对象等形式。
我们可以对这些文档进行版本控制,以便我们可以在新版本之后进行变异,而无需改变原始数据模型。
因此,每个文档都可以与早期版本有所不同,并且在使用类似 Mongoose 的 ORM 进行 Node.js 开发时,也可以修改为新的模型。这是一种使 MongoDB 的动态结构更符合我们需求的方法。
可以使用 CRUD 操作方法进行单记录操作和多记录操作以及多种查询方法供我们的应用程序使用。
例如:
find()
查找集合中的文档。
save()
将文档保存到集合中。
updateOne()
更新文档。
delete()
Delete 方法删除一个文档。
findByIdAndDelete()
查找给定 ObjectID 的文档并将其删除。
findByIdAndUpdate()
查找给定 ObjectID 的文档并使用给定的值更新它。
deleteOne()
从选定的结果集/集合中删除第一个文档。
与关系型数据库相比,MongoDB 的查询方式更简单。
数据删除和更新操作无需使用外键,因此无需处理更新和删除操作中的冲突,开发人员可以自行实现解决方案,这并非不可能。
提供什么
Mongodb 主要提供:
-
Mongodb 数据库实例
作为服务运行的 mongodb 数据库和驱动程序的实例。 -
Mongodb shell
用于初始化和管理数据库的命令行应用程序。 -
Mongodb compass
用于管理数据库的图形用户界面。
(例如:像 mysql 的 mysql workbench)
还包括 Mongodb Atlas 数据库即服务。
经常出现在
Mongodb 的实际运行如下:
- 电子商务系统
- 博客(中等)
- 社交网络(Codeacademy)
- 交通(Uber、Lyft)
- API 开发作为数据层
使用以下链接了解有关 mongodb 的更多信息。
https://docs.mongodb.com/manual/tutorial/getting-started/
鏂囩珷鏉ユ簮锛�https://dev.to/lizardkinglk/mongodb-58li