MongoDB 术语、安装及依赖

MongoDB 术语、安装及依赖

本章我们讨论 MongoDB 的术语、安装及 Rust 操作 MongoDB 的依赖。

MongoDB 是一款多模型、文档型 NoSQL 数据库引擎。在很多场景下,它可以替代传统关系型数据库,并具有 NoSQL 的优势。

为了便于学习,我们将 MongoDB 的术语和关系型数据库进行对比:

概念MongoDB关系型数据库
数据库databasedatabase
collection(集合)table
数据行document(文档)row data
字段fieldcolumn
索引indexindex
表关联embedding & linkdingjoin
分区/分片shardpartition
分区键sharding keypartition key

安装及云服务

  • 官方 MongoDB Atlas

  • claw run:数据库(Database)- 创建数据库(Create Database) - MongoDB

    • 注册送 $5
    • 如果关联的 github 注册时间超过 180 天,每月赠送 $5【所以,请使用超过 180 天的 github 账号进行注册】
    • MongoDB 实例最小配置 $0.11/天(约 $3.3/月)。你可以根据需求调整配置,以实现【用满每月的 $5 赠金和配置最大化】的最优方案
  • docker:mongo

    docker run \
            --name mongo \
            -e MONGO_INITDB_ROOT_USERNAME=mongo \
            -e MONGO_INITDB_ROOT_PASSWORD=mongo \
            --restart=always \
            -v /var/docker/mongo:/data/db \
            -p 127.0.0.1:27017:27017 \
            -d mongo
    
  • podman:如果你使用的是 podman 而不是 docker

    mkdir -p /var/docker/mongo && \
    podman run \
            --name mongo \
            -e MONGO_INITDB_ROOT_USERNAME=mongo \
            -e MONGO_INITDB_ROOT_PASSWORD=mongo \
            --restart=always \
            -v /var/docker/mongo:/data/db \
            -p 127.0.0.1:27017:27017 \
            -d docker.io/library/mongo
    
  • 其它安装:请参见官方文档

Rust 驱动

或者在 Cargo.toml 手动添加:

mongodb = "3.2.3"

在 AXUM 中,我们可以将 Database 作为状态进行共享,这样就可以在整个应用中使用 MongoDB 数据库连接了,我们来看一下示例代码:

  • Database 内部已经使用了 Arc,所以可以放心地进行 Clone 操作

本专题源码:AxumCourse/notes

要查看完整内容,请先登录