MongoDB数据库

MongoDB 的介绍

MongoDB 是一个开源的非关系型数据库系统,采用 C++ 编写,旨在处理大量数据存储和高吞吐量的应用程序。MongoDB 使用 JSON 风格的文档存储数据,具有高度的灵活性和性能。

主要特点:

  1. 非关系型数据库:不采用传统的关系型数据库表格模型,而是使用文档存储模型。
  2. 高性能:支持在集群中水平扩展,能够处理大规模的数据存储和高并发访问。
  3. 灵活的数据模型:文档存储模型支持嵌套文档和数组,适合存储复杂的数据结构。
  4. 丰富的功能:提供丰富的查询语言、支持多种索引、数据复制和故障恢复机制。

SQL 和 NoSQL 的区别

在关系型数据库(SQL)和非关系型数据库(NoSQL)之间,主要区别在于数据的组织方式和数据模型:

  • SQL 数据库:采用表格模型,数据按照预定义的结构存储,具有严格的一致性和事务支持。

    • 数据结构:数据库 > 表 > 行 > 列
    • 例子:MySQL、PostgreSQL、Oracle
  • NoSQL 数据库:采用多种数据模型,如文档存储、键值对、列存储和图形数据库,适用于数据结构较为灵活的场景。

    • 数据结构:数据库 > 集合(Collection) > 文档(Document) > 字段(Field)
    • 例子:MongoDB、Redis、Cassandra

MongoDB 的安装

MongoDB 的安装步骤:

  1. 下载 MongoDB 安装包:从 MongoDB 官网下载对应版本的安装包。
  2. 安装 MongoDB:按照官方文档指引安装 MongoDB。
  3. 配置 MongoDB:根据需要配置 MongoDB 的数据目录、日志文件路径等。
  4. 启动 MongoDB 服务:启动 mongod 进程以及可选的配置选项。

MongoDB 的简单使用

本地测试启动(功能受限)

在本地测试中,可以使用默认配置启动 MongoDB:

# 启动 MongoDB
mongod

# 连接 MongoDB Shell
mongo

生产方式启动(完整内容)

在生产环境中,需要配置更多的参数,例如数据目录、日志输出、认证等:

# 启动 MongoDB(示例)
mongod --dbpath /path/to/data --logpath /path/to/log/mongod.log --fork

 

MongoDB 的数据库操作和集合操作

MongoDB 中的操作以数据库和集合为单位:

  • 数据库操作

    # 切换数据库
    use your_database_name
    
    # 显示当前数据库
    db
  • 集合操作

    # 创建集合
    db.createCollection("your_collection")
    
    # 查看集合列表
    show collections

MongoDB 的数据类型

MongoDB 支持多种数据类型,包括字符串、整数、浮点数、日期、数组、嵌套文档等。

MongoDB 插入、查询、修改和删除数据

MongoDB 支持丰富的数据操作:

  • 插入数据

    db.collection_name.insertOne({ key: value });
  • 查询数据

    db.collection_name.find({ key: value });
  • 修改数据

    db.collection_name.updateOne({ filter }, { $set: { key: new_value } });
  • 删除数据

    db.collection_name.deleteOne({ filter });

MongoDB 的聚合管道

MongoDB 的聚合管道允许对数据进行多个阶段的处理和转换,如分组、排序、筛选等:

  • 分组管道

    db.collection_name.aggregate([
      { $group: { _id: "$key", total: { $sum: "$value" } } }
    ]);
  • 其他管道

    db.collection_name.aggregate([
      { $match: { key: value } },
      { $sort: { key: 1 } },
      { $skip: 10 },
      { $limit: 5 }
    ]);

MongoDB 索引和权限管理

  • 索引:MongoDB 支持多种索引类型,如单字段索引、复合索引、文本索引等。

    db.collection_name.createIndex({ key: 1 });
  • 权限管理:MongoDB 支持创建和管理用户及其权限,保障数据安全性。

pymongo 使用

pymongo 是 Python 中操作 MongoDB 的官方驱动程序:

pip install pymongo

使用示例:

from pymongo import MongoClient

# 连接 MongoDB
client = MongoClient('mongodb://localhost:27017/')

# 获取数据库和集合
db = client.your_database_name
collection = db.your_collection_name

# 插入数据
data = {"key": "value"}
result = collection.insert_one(data)

# 查询数据
query = {"key": "value"}
result = collection.find(query)

# 修改数据
update_query = {"key": "value"}
new_value = {"$set": {"key": "new_value"}}
result = collection.update_one(update_query, new_value)

# 删除数据
delete_query = {"key": "value"}
result = collection.delete_one(delete_query)
posted @ 2024-07-05 00:57  JJJhr  阅读(54)  评论(0编辑  收藏  举报