学习 MongoDB:入门
目前,我正在开始扩展我在 MongoDB 方面的知识,并且我决定在这里创建这个系列并与社区分享我获得的所有知识。
让我们开始吧..
目录:
什么是 MongoDB?
MongoDB 是一个 NoSQL 数据库。它与传统的基于 SQL 的数据库不同。为什么不同?首先,它不像 SQL 表那样具有预定义的结构。我们不需要预先定义表的结构。其次,它不使用表,而是使用类似 JSON 的文档,并且是否使用模式由您自行决定。
RDBMS:关系数据库
NoSQL:非 SQL 或非关系数据库或分布式数据库
NoSQL 的优点:
- 非结构化数据的动态模式。每个文档可以具有唯一的结构。
- 定义 Schema 是可选的。
- NoSQL 数据库是水平可扩展的
- 它使用带有键值对的对象。因此,如果您熟悉 JSON 或 JavaScript 对象,那么理解和使用 NoSQL 会更容易。
- 最适合存储分层数据。
需要了解的事情
我使用的操作系统和 MongoDB 版本如下。这不会对学习过程造成太大影响,但在继续学习之前了解一下还是很有用的。
- 操作系统:Ubuntu 18.04 LTS
- Mongodb版本:4.2.9
安装
安装非常简单,您可以按照 mongodb 文档并在此处安装社区版。如果安装过程中提示您安装 mongodb compass,请安装它。它是一个 GUI 应用程序,可以帮助您以直观的方式可视化数据库。
安装后您将获得以下两个重要信息:
- mongod :MongoDB 服务器
- mongo:mongo shell,我们可以在其中发出命令并使用数据库
入门
在 Linux 中,启动 MongoDB 非常简单,只需在终端中输入几个命令即可。那就开始吧!
启动 mongod 服务器
# start server
sudo systemctl start mongod
# start server : alternative way
sudo service mongod start
# check if server running
sudo systemctl status mongod
# check if server running : alternative way
sudo service mongod status
# stop server
sudo systemctl stop mongod
# stop server: alternative way
sudo service mongod stop
服务器启动后,我们可以将 mongo shell 连接到正在运行的实例。要访问 mongo shell,请使用以下命令:
mongo
是的,就像输入并按下 Enter 键一样简单mongo
。
希望你现在处于 shell 状态。可能会出现一些警告和其他信息。要清除终端,请输入cls
shell 并按 Enter 键,或者按ctrl + L
。
要退出 shell,请键入exit
并按 Enter。
基础知识
在继续之前,让我们讨论一下我们需要知道的一些重要的事情,以便更好地理解 MongoDB。
数据库
在 MongoDB 中,您可以在单个 MongoDB 服务器上拥有多个数据库,以集中方式保存数据。例如,如果您正在开发一个学校应用程序,则可以创建一个学校数据库,用于存储所有集合(类似于 SQL 中的表)。该数据库可以包含学生集合、教师集合等。
使用数据库时需要了解的一个有用命令是:
> show dbs
此命令将显示 mongo 服务器上所有可用的数据库。要在数据库之间切换,只需输入以下命令:
> use <database name>
收藏
集合就像 SQL 中的表。它将记录集中保存。例如,您可以创建一个学生集合,在其中存储所有学生的记录。这些记录中可以包含学生的姓名、年龄、班级、科目、百分比等信息。
documents
一个集合在一个地方保存多个。
我们将在后续文章中进一步讨论收藏品。
一些有用的集合命令如下:(切换到数据库以use <database name>
使用这些命令)
# show all the collections in db
> show collections
# using a collections
> db.<collection name>.find()
文件
文档是以类似 JSON 格式保存您的信息的主要记录。
{
"name": "Ash Ketchum",
"age": 20,
"subjects": ["Math", "Science", "History", "English"],
"standard": 8
}
创建文档就像在 JavaScript 中创建对象一样简单。您可以嵌套值。文档内部可以嵌套文档。您可以拥有数组、对象、布尔值、数字、字符串等。这使得 MongoDB 非常适合需要嵌套的分层数据。
需要注意的是,Document 的结构并不是固定不变的,也就是说,我们没必要定义所有 Document 中的所有字段。这使得 MongoDB 对于非结构化数据具有灵活性。
我们将在后续文章中了解有关文档的更多信息。
这篇就到这里。下一篇会讲解基本的 CRUD 操作。
非常感谢您的任何建议。
希望您发现它有用并且从中学到一些新的东西。
祝您编码愉快 :)
下一篇: 基本 CRUD 操作
文章来源:https://dev.to/paras594/learn-mongodb-getting-started-55nk