1. Mongodb简介
MongoDB是一款NoSQL数据库管理系统,它以高效,灵活和可扩展而著称。与传统的关系型数据库不同,MongoDB采用了文档数据模型,其数据存储格式类似于JSON,支持动态查询和复杂数据类型。MongoDB同样支持水平扩展,具有较高的横向扩展性,即通过将数据分布在多个实例之间来增加容量或实现高可用性。
1.1 Mongodb的特点
灵活的数据模型:MongoDB使用文档数据模型,可以自由添加字段,不需要事先定义数据结构,非常适合快速迭代和需求变更。
高效的查询:基于文档模型的查询语言可以对数据进行复杂的过滤和聚合操作。在大规模数据量的处理中,MongoDB 会像 SQL 一样 面向索引 查询,可避免全表扫描。
可扩展性: 支持分片与复制等传统 NoSQL的特性。分片将数据水平分割到多个服务器上,增加了存储容量和吞吐量。复制可以解决高可用性问题。
1.2 Mongodb安装与环境搭建
在安装 MongoDB 之前,您需要确认操作系统是否符合 MongoDB 的最低要求。 MongoDB 支持 Windows、Linux 和 macOS,通常情况下,推荐使用 Linux 系统作为 MongoDB 所在平台。此外,您还需要安装一个 高于 3.6 以上 版本的 MongoDB。
您可前往 MongoDB 官网下载最新稳定版的 MongoDB 压缩包并解压。将解压后的安装包拷贝到想要安装 MongoDB 的机器上即可。
安装 MongoDB 需要首先安装 mongoDB-shell 客户端和 mongoDB 服务,在安装之前需要从 MongoDB 官网下载用于对应操作系统的 MongoDB 压缩包。然后解压后将可执行文件拷贝到 PATH 目录中。
tar -zxvf mongodb-linux-x86_64-rhel70-3.4.13 tgz # 解压MongoDB
mv mongodb-linux-x86_64-rhel70-3.4.13 /usr/local/mongodb/ # 将mongodb文件夹移动到指定目录下
export PATH=/usr/local/mongodb/bin:$PATH # 将mongodb加入PATH环境变量
2. Mongodb基本操作
2.1 数据库的创建和连接
MongoDB命令行模式的操作方式类似于 MySQL,首先需要登录你所创建的数据库。如果数据库不存在,你也可以直接访问它,然后 MongoDB 会帮你自动创建它。
# 进入mongo命令行
mongo
使用“use”命令来切换数据库或者创建新数据库:
# 切换至数据库mydb
use mydb
2.2 集合的创建和操作
MongoDB中的数据存储在集合中,集合由文档组成,它们本质上是一个动态的实体,更像是C++和C#中的对象。
使用以下命令创建一个示例集合:
# 创建集合
db.createCollection("test")
# 像集合添加数据,可以执行以下命令
db.test.insert({name: "Jack", age: 18})
或者可以向集合中插入多个文档:
db.test.insertMany([
{ name: "Tom", age: 25 },
{ name: "Lucy", age: 23 },
{ name: "Chris", age: 30 }
])
执行以下命令可以查看集合中的所有文档记录:
db.test.find()
2.3 查询操作
MongoDB的查询语言使得它可以对文档进行复杂的过滤和聚合查询。以下是一些示例查询操作:
查询所有数据:
db.test.find()
查询age大于20的数据:
db.test.find({"age": {"$gt": 20}})
删除以上查询到的文档数据:
db.test.remove({ "age" : {"$gt" : 20}})
2.4 更新操作
使用update()函数更改集合中已存在的数据。以下命令将name为“Jack”的年龄改为20岁:
db.test.update({ "name" : "Jack" },{ "$set" : { "age" : 20 } })
3. 总结
MongoDB是一个高效,灵活和可扩展的数据库管理系统,其以文档数据模型为特点,支持动态查询和复杂数据类型。Mongodb是一种文档型数据库,存储的数据类似于JSON格式,而国内的NoSQL数据库中较为常见的Couchbase则是键值型数据库。在使用过程中,我们可以通过一些简单的命令来创建数据库和集合,并进行增删改查等操作。