MongoDB 初学者教程:通过简单的步骤学习 MongoDB
已发表: 2022-08-31MongoDB 是一个文档数据库和领先的开源 NoSQL 数据库。 它是用 C++ 编写的,是一个面向文档的 NoSQL 数据库,用于大容量数据存储、内容管理和交付、移动和社交基础设施、用户数据管理等。
它由一个数据模型组成,您可以使用它来表示层次关系。 它依赖于带有可选模式的类 JSON 文档,并且不使用传统关系数据库中使用的行和表。 具有键值对的文档是 MongoDB 中数据的基本单元。
MongoDB 以 JSON 格式存储数据。 它的高需求主要基于它对任何属性的索引、复制和高可用性、自动分片、丰富的查询、快速的就地更新和丰富的社区支持。 让我们深入了解 mongodb 查询教程。
MongoDB 功能
这个面向数据的数据库的可用性取决于 Mongo DB 的某些完整特性:-
- 每个数据库都由进一步包含文档的集合组成。 这些文档及其大小和内容可能会根据字段数量的不同而有所不同。
- 文档结构基于开发人员如何在他们的程序中构建类和对象。
- 这些行不需要预定义的架构,因为您可以随时随地创建字段。
- 使用 MongoDB 数据模型,您可以表示用于存储数组和其他复杂结构的层次关系。
- MongoDB 环境具有很强的可扩展性。
- 应用程序对象不需要转换或映射到数据库对象。
- 内部存储器存储窗口工作集,可以更轻松地访问数据。
- 单个对象的结构清晰。
- 没有任何复杂的连接。
- 其深度查询能力支持对文档的动态查询。
此外,请查看我们的数据科学课程以提高自己的技能。
关于 MongoDB 和 RDBMS 你需要知道的事情
MongoDB 是一个面向文档的跨平台数据库,可提供高性能、有效的可扩展性和高可用性。 它基于文档和集合工作。 MongoDB 中的每个数据库都有其独特的文件集,理想情况下,单个 MongoDB 服务器具有多个数据库。
另一方面,Collection 是一组 MongoDB 文档,相当于 RDBMS 表。 它存在于单个数据库中,并且不强制执行模式。 集合中的 Documents 可以有不同的字段,并且集合中的所有文档都具有相关或相似的目的。 一组键值对称为具有动态模式的文档,其中同一集合中的文档不需要具有相同的结构或字段集。
您将在下表中找到 RDBMS 术语与 MongoDB 的关系。
关系型数据库管理系统 | MongoDB |
数据库 | 数据库 |
元组 | 文档 |
桌子 | 收藏 |
表连接 | 嵌入式文档 |
柱子 | 场地 |
首要的关键 | 主键(MongoDB 提供默认键 _id) |
数据库服务器和客户端 | |
mysqld/甲骨文 | 蒙神 |
mysql/sqlplus | 蒙哥 |
MongoDB和SQL数据库之间的区别
MongoDB 比 SQL 更灵活,并提供更好的数据可用性。 它还具有便携性和可扩展性。 SQL 数据库以其持久性和一致性而闻名。 因此,最好的数据库解决方案取决于所涉及的项目类型。
MongoDB 更适合开发管道,而 SQL 数据库则非常适合可靠的组织数据事务。 MongoDB 非常适合处理和处理非结构化数据。 此 NoSQL 数据库是提供数据管道和应用程序(例如实时分析)的最佳替代方案之一。
MongoDB 非常适合与物联网设备和移动/Web 应用程序一起工作。 由于其灵活性和平滑扩展的能力,它正迅速成为全球开发人员的首选。
虽然 SQL 数据库非常适合处理结构化数据、数据科学和高级组织任务,但 MongoDB 通过有效开发软件或在线服务来满足现代开发人员和企业的需求。
如何使用 MongoDB 的示例
存储嵌套数据结构
在文档中嵌套对象的能力是 MongoDB 的最大特性之一。 为了将数据嵌入文档中,开发人员在 MongoDB 中构建数据,而不是将其分解为各种集合。
这是一个例子:-
{_id: ObjectId(“5effaa5662679b5af2c58829”),
电子邮件:“[email protected]”,
名称:{给定:“Lily”,家庭:“Mona”},
年龄:31,
地址:[{标签:“家”,
街道:“贝克街 22 1b 号”,
城市:“伦敦”,
状态:“ENG”,
邮编:“NW1 6XE”,
国家:“英国”},
{标签:“妈妈”,
街道:“公园街 555 号”,
城市:“湖城”,
省:“安大略省”,
国家:“CA”}]
}
名称字段是在地址字段中具有给定和姓氏组件的嵌套对象,其中多个地址存储在一个数组中。 每个地址都可以有不同的字段,以便于存储其他数据类型。
使用 MongoDB 外壳
MongoDB shell 主要用于导航、操作和检查文档数据。 当 MongoDB 在本地机器上运行时,启动 shell 在标准端口上的 localhost 连接到 MongoDB。 如果您需要连接到 MongoDB Atlas 集群或其他远程实例,请确保在命令 mongo 之后添加连接字符串。
您将在下面找到快速的 shell 示例:-
列出集合
> 使用我的数据库;
> 展示收藏;
用户
帖子
>
列出数据库
> 显示数据库;
管理员0.000GB
配置 0.000GB
本地0.000GB
我的数据库 0.004GB
>
探索我们的热门数据科学课程
IIITB 数据科学高级管理研究生课程 | 商业决策数据科学专业证书课程 | 亚利桑那大学数据科学理学硕士 |
IIITB 数据科学高级证书课程 | 马里兰大学数据科学和商业分析专业证书课程 | 数据科学课程 |
查找集合中的第一个文档
> db.users.findOne()
{
“_id”:ObjectId(“5ce45d7606444f199acfba1e”),
“名字”:{给定:“安娜”,家庭:“史密斯”},
“电子邮件”:“电子邮件@example.com”
“年龄”:36
}
>
计算集合中的文档
> 使用我的数据库;
> db.users.count()
20234
>
按 ID 查找文档
> db.users.findOne({_id: ObjectId(“5ce45d7606444f199acfba1e”)})
{
“_id”:ObjectId(“5ce45d7606444f199acfba1e”),
“名字”:{给定:“安娜”,家庭:“史密斯”},
“电子邮件”:“电子邮件@example.com”,
“年龄”:36
}
>
查询 MongoDB 集合
MongoDB 查询语言 (MQL) 中的相同语法用于可用于高级查询的文档。 您将在下面找到 MongoDB 查询示例:
查找数量有限的结果
> db.users.find().limit(10)
…
>
按姓氏查找用户
> db.users.find({“name.family”: “Smith”}).count()
1
>
请注意,我们将“name.family”括在引号中,因为它在中间有一个点。
按数值范围查询文档
// 所有具有“likes”字段且数值大于 1 的帖子:
> db.post.find({likes: {$gt: 1}})
// 所有点赞数为 0 的帖子
> db.post.find({likes: 0})
// 所有不完全有 1 个赞的帖子
> db.post.find({likes: {$ne: 1}})
按字段排序结果
// 按年龄排序,升序(最小值在前)
> db.user.find().sort({年龄: 1})
{
“_id”:ObjectId(“5ce45d7606444f199acfba1e”),
“名字”:{给定:“亚历克斯”,家庭:“史密斯”},
“电子邮件”:“电子邮件@example.com”,
“年龄”:27
}
{
_id: ObjectId(“5effaa5662679b5af2c58829”),
电子邮件:“[email protected]”,
姓名:{给定:“Jesse”,家庭:“Xiao”},
年龄:31
}
>
// 按年龄排序,降序(最大值在前)
> db.user.find().sort({年龄: -1})
{
_id: ObjectId(“5effaa5662679b5af2c58829”),
电子邮件:“[email protected]”,
姓名:{给定:“Lilly”,家庭:“Mona”},
年龄:31
}
{
“_id”:ObjectId(“5ce45d7606444f199acfba1e”),
“名字”:{给定:“安娜”,家庭:“史密斯”},
“电子邮件”:“电子邮件@example.com”,
“年龄”:36
}
>
2022 年最值得学习的数据科学技能
SL。 不 | 2022 年最值得学习的数据科学技能 | |
1 | 数据分析课程 | 推论统计课程 |
2 | 假设检验程序 | 逻辑回归课程 |
3 | 线性回归课程 | 用于分析的线性代数 |
结论
MongoDB 的可扩展性使其成为使用最广泛的数据库之一,因为它在软件开发和数据科学领域提供了许多好处。 在这些领域从事职业是一个有利可图的选择。 upGrad 的数据科学执行 PG 计划是您在数据科学和其他相关领域开始职业生涯的好地方。
为什么 MongoDB 如此容易扩展?
MongoDB 很容易扩展,因为它不是 SQL 数据库,因为 MongoDB 内部的数据没有关系耦合。 MongoDB 中的数据以自包含格式存储,通过将这些文档分布在多个系统(节点)上,可以轻松进行水平扩展。
MongoDB和MariaDB、MySQL等数据库系统有什么区别?
MongoDB 是 NoSQL 数据库,而 MariaDB 和 MySQL 是 SQL 数据库。 此外,MongoDB 是一个非关系型数据库,而另外两个是关系型数据库。
为什么MongoDB如此受欢迎?
MongoDB 是 Web 开发中 MERN 堆栈的重要组成部分。 在 MongoDB 上部署和扩展项目也很容易。 MongoDB以其可扩展性而闻名。 它非常适合任何开发管道。