MongoDB 初学者教程:通过简单的步骤学习 MongoDB

已发表: 2022-08-31

MongoDB 是一个文档数据库和领先的开源 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以其可扩展性而闻名。 它非常适合任何开发管道。