1. MongoDB 简介
MongoDB 是一个开源的 NoSQL 数据库管理系统,它没有预定义的表结构,而是使用 JSON 格式的文档来存储数据,因此非常适合处理半结构化、复杂或非常大的数据集。
与传统的关系型数据库相比,MongoDB 具有以下优点:
易扩展性:它支持可扩展性和复制集,可以实现高可用性和水平扩展。
速度:它使用内存映射文件的方式,可以实现高效的数据读写。
灵活性:它的文档模型能够容纳不同类型、结构和大小的数据。
免费使用:只要遵守开源协议,任何人都可以免费使用 MongoDB。
2. MongoDB 存储数据结构
在 MongoDB 中,最基本的存储单元是文档(Document)。一个文档是一个键值对(key-value)集合,类似于关系型数据库中的一行记录。
文档可以使用 JSON 格式或类似 JSON 的 BSON 格式存储。BSON 是一种二进制形式的 JSON,比 JSON 更加紧凑和高效。
以下是 MongoDB 中的一个文档示例:
{
"_id": ObjectId("60e0d26a59b8443da3ddbd6a"),
"name": "John",
"age": 30,
"email": "john@example.com"
}
2.1 集合
在 MongoDB 中,文档的集合被称为集合(Collection),类似于关系型数据库中的表。
一个数据库中可以有多个集合,每个集合可以包含多个文档。由于 MongoDB 不需要预定义表结构,因此可以在同一个数据库中使用不同的集合存储不同类型的数据,这是非常灵活的。
3. MongoDB 的快速便捷的存取技术
MongoDB 提供了多种方式访问数据库。
3.1 命令行工具
在 MongoDB 安装后,可以使用其自带的命令行工具 mongodb 和 mongo 来直接访问 MongoDB 数据库。
使用 mongodb 命令可以启动 MongoDB 服务,使用 mongo 命令可以直接连接到 MongoDB 数据库,如下:
$ mongod # 启动 MongoDB 服务
$ mongo # 连接 MongoDB 数据库
在 mongo shell 中,可以使用以下命令来访问 MongoDB 数据库
show dbs:显示当前数据库列表。
use dbname: 切换到指定的数据库。
show collections:显示当前数据库中的所有集合。
db.collectionname.find(query): 查询指定集合中的文档数据。
db.collectionname.insert(document): 向指定集合中插入新的文档数据。
db.collectionname.update(query, update): 更新指定集合中满足条件的文档数据。
db.collectionname.remove(query): 删除指定集合中满足条件的文档数据。
3.2 驱动程序
与其他数据库管理系统类似,MongoDB 也提供了多种编程语言的驱动程序,例如 Python、Java、C#、JavaScript 等。
使用这些驱动程序,可以在编程语言中方便地连接 MongoDB 数据库并进行读写操作。例如,在 Python 中可以使用 pymongo 模块来访问 MongoDB 数据库:
import pymongo
client = pymongo.MongoClient("mongodb://localhost:27017/")
db = client["mydatabase"]
col = db["customers"]
doc = { "name": "John", "address": "Highway 37" }
x = col.insert_one(doc)
3.3 Web 界面
除了命令行工具和驱动程序之外,MongoDB 还提供了 Web 界面方便用户对数据库进行管理。
MongoDB 自带的 Web 界面叫做 Mongo Express。它提供了一个 Web 界面,可以查看数据库和集合的信息,执行查询,添加、编辑和删除数据。
通过以下命令可以在命令行启动 Mongo Express:
$ mongo-express
启动后,在浏览器中访问 http://localhost:8081/ 即可进入 Mongo Express 界面。
3.4 第三方工具
除了 MongoDB 自带的工具和驱动程序之外,还有很多第三方工具可供选择,例如 Robomongo、Studio 3T、NoSQLBooster 等。
这些工具都提供了可视化的操作界面,方便用户对 MongoDB 数据库进行管理和操作。
4. 总结
MongoDB 是一个快速便利的存取技术,可用于半结构化、复杂或非常大的数据集,具有易扩展性、速度和灵活性等优点。它提供多种方式访问数据库,包括命令行工具、驱动程序、Web 界面和第三方工具。
无论是使用 MongoDB 自带的工具,还是使用第三方工具,都可以方便地对 MongoDB 数据库进行管理和操作。