MongoDB

1. 安装 MongoDB

1.1 在 Windows 上安装

  1. 下载 MongoDB

  2. 安装 MongoDB

    • 运行下载的安装程序,按照提示完成安装。
  3. 设置环境变量

    • 将 MongoDB 的 bin 目录添加到系统的环境变量中,以便在命令行中使用 mongomongod 命令。
  4. 创建数据目录

    • 默认情况下,MongoDB 会在 C:\data\db 目录下存储数据。你可以手动创建这个目录,或者在启动 MongoDB 时指定其他目录。

1.2 在 macOS 上安装

  1. 使用 Homebrew 安装

    brew tap mongodb/brew
    brew install mongodb-community
    
  2. 启动 MongoDB

    brew services start mongodb/brew/mongodb-community
    

1.3 在 Linux 上安装

  1. 使用包管理器安装

    • 对于 Ubuntu:
    sudo apt update
    sudo apt install -y mongodb
    
  2. 启动 MongoDB

    sudo systemctl start mongodb
    

2. 基本操作

2.1 启动 MongoDB

在命令行中输入以下命令启动 MongoDB 服务:

mongod

2.2 连接到 MongoDB

在另一个终端中,使用以下命令连接到 MongoDB:

mongo

2.3 创建数据库

使用 use 命令创建或切换到一个数据库:

use mydatabase

2.4 创建集合

集合类似于关系数据库中的表。使用 db.createCollection() 创建集合:

db.createCollection("mycollection")

2.5 插入文档

使用 insertOne()insertMany() 插入文档:

// 插入单个文档
db.mycollection.insertOne({ name: "Alice", age: 25 })

// 插入多个文档
db.mycollection.insertMany([
    { name: "Bob", age: 30 },
    { name: "Charlie", age: 35 }
])

2.6 查询文档

使用 find() 查询文档:

// 查询所有文档
db.mycollection.find()

// 查询特定条件的文档
db.mycollection.find({ age: { $gt: 30 } })  // 查询年龄大于 30 的文档

2.7 更新文档

使用 updateOne()updateMany() 更新文档:

// 更新单个文档
db.mycollection.updateOne(
    { name: "Alice" },
    { $set: { age: 26 } }
)

// 更新多个文档
db.mycollection.updateMany(
    { age: { $gt: 30 } },
    { $set: { status: "senior" } }
)

2.8 删除文档

使用 deleteOne()deleteMany() 删除文档:

// 删除单个文档
db.mycollection.deleteOne({ name: "Alice" })

// 删除多个文档
db.mycollection.deleteMany({ age: { $lt: 30 } })

3. 查询操作

3.1 查询条件

MongoDB 支持多种查询条件:

  • 比较操作符
    • $eq:等于
    • $ne:不等于
    • $gt:大于
    • $gte:大于等于
    • $lt:小于
    • $lte:小于等于
db.mycollection.find({ age: { $gte: 30 } })  // 查询年龄大于等于 30 的文档
  • 逻辑操作符
    • $and:与
    • $or:或
    • $not:非
    • $nor:不与
db.mycollection.find({ $or: [{ age: { $lt: 30 } }, { name: "Bob" }] })  // 查询年龄小于 30 或名字为 Bob 的文档

3.2 投影

使用投影来限制查询结果中返回的字段:

db.mycollection.find({}, { name: 1, age: 1 })  // 只返回 name 和 age 字段

3.3 排序

使用 sort() 方法对查询结果进行排序:

db.mycollection.find().sort({ age: 1 })  // 按年龄升序排序

3.4 限制结果数量

使用 limit() 方法限制返回的文档数量:

db.mycollection.find().limit(2)  // 只返回前两个文档

4. 索引

索引可以提高查询性能。使用 createIndex() 创建索引:

db.mycollection.createIndex({ name: 1 })  // 为 name 字段创建升序索引

4.1 查看索引

使用 getIndexes() 查看集合的索引:

db.mycollection.getIndexes()

4.2 删除索引

使用 dropIndex() 删除索引:

db.mycollection.dropIndex("name_1")  // 删除 name 字段的索引

5. 聚合

MongoDB 提供了强大的聚合框架,可以对数据进行复杂的处理和分析。

5.1 使用 aggregate()

使用 aggregate() 方法进行聚合操作:

db.mycollection.aggregate([
    { $match: { age: { $gte: 30 } } },  // 筛选年龄大于等于 30 的文档
    { $group: { _id: "$name", averageAge: { $avg: "$age" } } }  // 按名字分组并计算平均年龄
])

5.2 常用聚合操作符

  • $match:筛选文档
  • $group:分组
  • $sum:求和
  • $avg:平均值
  • $count:计数
  • $sort:排序

6. 数据备份与恢复

6.1 备份数据

使用 mongodump 命令备份数据:

mongodump --db mydatabase --out /path/to/backup

6.2 恢复数据

使用 mongorestore 命令恢复数据:

mongorestore --db mydatabase /path/to/backup/mydatabase

7. MongoDB 客户端工具

7.1 MongoDB Compass

MongoDB Compass 是 MongoDB 官方提供的图形化管理工具,可以方便地进行数据可视化、查询和管理。

7.2 Robo 3T

Robo 3T 是一个流行的 MongoDB GUI 客户端,提供了直观的界面和强大的功能,适合开发和管理 MongoDB 数据库。

Read more

rust 模块

一、模块系统的基础 1. 模块的定义 模块是 Rust 中组织代码的基本单元。通过模块,你可以将代码划分为逻辑单元,控制可见性,避免命名冲突。 * 定义模块: mod my_module { // 模块内容 } * 模块的作用域: 模块内的项(函数、结构体、枚举等)默认是私有的,只能在模块内部访问。使用 pub 关键字可以公开这些项。 2. 模块的可见性 * 私有(默认):只能在模块内部访问。 * 公开(pub):可以在模块外部访问。 * 受限公开: * pub(crate):在整个 crate 内可见。 * pub(super):在父模块中可见。 * pub(in path):在指定路径下可见。 示例: mod outer

By amm

© 2025 路不易All rights reserved.

备案号:黔ICP备2025043243号-1 | 公安备案图标 贵公网安备52052402000220号