MongoDB 4.X基础教程
1. MongoDB是什么
MongoDB是一个高性能、开源、无结构化数据的文档型数据库。与传统的关系型数据库不同,它不强制要求数据的结构,而是以BSON(类JSON)的格式存储数据,这样可以更灵活地处理数据。此外,MongoDB还支持异步处理和复制,保证了数据的稳定性和可扩展性。
MongoDB是以JSON风格的文档格式存储数据的,它不要求固定的模式,可以支持非结构化的数据模型。与传统关系型数据库不同,MongoDB使用面向文档(document-oriented)的方式来描述数据。
1.1 MongoDB的优点
1.高性能
MongoDB作为一种NoSQL数据库,它的性能比传统的关系性数据库更高,尤其是在写入大量数据时。
2.易于扩展
MongoDB支持分布式数据存储,这让它很容易扩展水平,也很容易处理大规模的数据集。
3.数据复制
MongoDB支持数据的自动复制,可以在多个服务器之间实现数据的同步和负载均衡,确保数据的高可用性。
2. MongoDB的安装与配置
2.1 安装MongoDB
在开始使用MongoDB之前,我们需要先进行安装。MongoDB支持所有主要的操作系统,例如Windows、Linux和MacOS。这里以Linux系统为例。
sudo apt-get update
sudo apt-get install -y mongodb-org
2.2 配置MongoDB
在安装MongoDB后,我们需要修改一些默认配置。具体来说,我们需要修改MongoDB的配置文件mongodb.conf,使MongoDB在启动时加载配置文件。
我们可以添加以下代码:
systemLog:
destination: file
path: "/var/log/mongodb/mongod.log"
logAppend: true
storage:
dbPath: "/data/db"
journal:
enabled: true
processManagement:
fork: true
net:
port: 27017
上述代码指定了MongoDB的日志、数据存储和网络端口等配置。保存这个配置文件,然后启动MongoDB:
sudo mongod --config /etc/mongod.conf
3. MongoDB Shell
MongoDB提供了一个命令式的Shell界面,用来查询和管理MongoDB数据库。我们可以在Shell中执行JavaScript的命令来操作MongoDB。
要使用Shell,我们可以直接在控制台输入mongo,然后就可以开始使用 Shell 了。
比如,我们可以使用下面的命令来创建一个新的数据集:
use mydb
db.createCollection("mycollection")
3.1 Shell命令
以下是一些常用的MongoDB命令:
show dbs:显示当前存在的数据库列表。
use dbname:切换到指定的数据库中。
db.col.find():查询某个集合中的所有文档。
db.col.insert():向指定集合中插入一条数据。
db.col.update():更新指定集合中的一条数据。
db.col.remove():删除指定集合中的一条数据。
4. MongoDB基本概念
4.1 Document(文档)
在MongoDB中,一个文档就是一个键值对(key-value)结构的数据对象,类似于JSON格式。下面是一个示例:
{
name: "Jack",
age: 18,
sex: "male"
}
一个文档可以有多个键值对,每个键都是唯一的。可以把文档看作是数据库中的一条记录。
4.2 Collection(集合)
集合是一组文档(即记录)的集合。
以下是创建一个新的集合的示例:
db.createCollection("mycollection")
4.3 Database(数据库)
数据库是MongoDB中的容器,用于存储数据集合。
以下是创建一个新的数据库的示例:
use mydb
一个MongoDB服务器可以同时管理多个数据库。默认情况下,MongoDB将数据存储在/data/db目录下。
5. 查询数据
在MongoDB中,我们可以使用find()方法来查询数据。如果想要查询特定条件下的文档,就需要使用$符号。
例如,要查询所有age为18的文档,可以使用如下的脚本:
db.col.find({ age: 18 })
如果想要查询年龄不等于18的文档,可以使用以下代码:
db.col.find({ age: {$ne: 18} })
为了查询大于或等于某个值的文档,我们可以使用以下代码:
db.col.find({ age: {$gte: 18} })
6. 结论
本文主要介绍了MongoDB的基础知识和操作实践,包括安装配置、使用MongoDB Shell进行操作、MongoDB中文档、集合和数据库等基本概念,以及查询数据的相关脚本。MongoDB的强大功能,使其成为处理非结构数据的首选解决方案。