MongoDB的安装与配置,进行文档存储与查询

person ~~情~非~    watch_later 2024-07-19 09:31:29
visibility 196    class MongoDb,大数据    bookmark 专栏

MongoDB的安装与配置,进行文档存储与查询

什么是MongoDB

MongoDB是一个开源的、面向文档的NoSQL数据库系统,使用类似JSON的BSON格式存储数据。它提供了高性能、可扩展性和灵活的数据模型,非常适合快速开发和迭代应用程序。

MongoDB的关键特性

  1. 文档存储:使用灵活的BSON格式存储数据,支持嵌套文档和数组。
  2. 高性能:提供高效的读写操作,适合高并发应用。
  3. 可扩展性:通过分片机制实现水平扩展,处理大规模数据。
  4. 丰富的查询语言:支持丰富的查询、过滤、聚合操作。
  5. 复制与高可用性:通过复制集机制确保数据的高可用性和容错性。

MongoDB 安装与配置

环境准备

  • 操作系统:支持多种操作系统,包括Windows、macOS和Linux。
  • 依赖项:无特殊依赖项,只需保证操作系统正常运行。

下载和安装

  1. 下载MongoDB
    从MongoDB官方网站下载适合操作系统的MongoDB安装包:https://www.mongodb.com/try/download/community

  2. 安装MongoDB

    • Windows

      • 运行下载的安装程序并按照提示完成安装。
      • 默认安装路径为C:\Program Files\MongoDB\Server\<version>\
    • macOS
      使用Homebrew进行安装:

      brew tap mongodb/brew
      brew install mongodb-community
      
    • Linux(以Ubuntu为例):

      wget -qO - https://www.mongodb.org/static/pgp/server-4.4.asc | sudo apt-key add -
      echo "deb [ arch=amd64,arm64 ] https://repo.mongodb.org/apt/ubuntu focal/mongodb-org/4.4 multiverse" | sudo tee /etc/apt/sources.list.d/mongodb-org-4.4.list
      sudo apt-get update
      sudo apt-get install -y mongodb-org
      

配置MongoDB

  1. 启动MongoDB

    • Windows:在命令提示符中运行:

      "C:\Program Files\MongoDB\Server\<version>\bin\mongod.exe" --dbpath "C:\data\db"
      

      注意:需要先创建数据目录C:\data\db

    • macOSLinux

      sudo systemctl start mongod
      
  2. 验证安装
    打开MongoDB shell(mongo):

    mongo
    

    如果看到MongoDB shell提示符,说明MongoDB已成功启动。

使用MongoDB进行文档存储与查询

创建数据库和集合

在MongoDB中,数据库包含集合,集合包含文档。

use my_database
db.createCollection('my_collection')

插入数据

向集合中插入文档。

db.my_collection.insertOne({ name: 'Alice', age: 30 })
db.my_collection.insertMany([{ name: 'Bob', age: 25 }, { name: 'Charlie', age: 35 }])

查询数据

从集合中查询数据。

db.my_collection.find()
db.my_collection.find({ age: { $gt: 30 } })

更新数据

更新集合中的文档。

db.my_collection.updateOne({ name: 'Alice' }, { $set: { age: 31 } })
db.my_collection.updateMany({ age: { $lt: 30 } }, { $set: { status: 'young' } })

删除数据

删除集合中的文档。

db.my_collection.deleteOne({ name: 'Bob' })
db.my_collection.deleteMany({ age: { $gt: 30 } })

高级操作

索引

创建索引以提高查询性能。

db.my_collection.createIndex({ name: 1 })

聚合操作

使用聚合管道进行复杂的数据处理。

db.my_collection.aggregate([
    { $match: { age: { $gt: 20 } } },
    { $group: { _id: '$status', total: { $sum: 1 } } }
])

复制集

配置复制集以提高数据的高可用性。

  1. 修改配置文件:编辑/etc/mongod.conf,添加复制集配置。

    replication:
        replSetName: "rs0"
    
  2. 启动MongoDB

    sudo systemctl restart mongod
    
  3. 初始化复制集
    在MongoDB shell中运行:

    rs.initiate()
    

分片

配置分片以支持大规模数据的水平扩展。

  1. 启动配置服务器

    mongod --configsvr --replSet csrs --dbpath /data/configdb --port 27019 --fork --logpath /var/log/mongodb/csrs.log
    
  2. 启动分片服务器

    mongod --shardsvr --dbpath /data/shard1 --port 27018 --fork --logpath /var/log/mongodb/shard1.log
    
  3. 启动mongos进程

    mongos --configdb csrs/localhost:27019 --fork --logpath /var/log/mongodb/mongos.log
    
  4. 添加分片
    在MongoDB shell中运行:

    sh.addShard("localhost:27018")
    

总结

通过掌握MongoDB的基本概念、安装与配置方法,以及如何使用MongoDB进行文档存储与查询,你可以构建高性能、可扩展的数据库应用,处理各种复杂的数据存储和查询需求。MongoDB灵活的数据模型和丰富的查询语言,使其适用于各种应用场景。

评论区
评论列表
menu