MongoDB是一个开源的、面向文档的NoSQL数据库系统,使用类似JSON的BSON格式存储数据。它提供了高性能、可扩展性和灵活的数据模型,非常适合快速开发和迭代应用程序。
下载MongoDB
从MongoDB官方网站下载适合操作系统的MongoDB安装包:https://www.mongodb.com/try/download/community
安装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
Windows:在命令提示符中运行:
"C:\Program Files\MongoDB\Server\<version>\bin\mongod.exe" --dbpath "C:\data\db"
注意:需要先创建数据目录C:\data\db
。
macOS 和 Linux:
sudo systemctl start mongod
验证安装
打开MongoDB shell(mongo):
mongo
如果看到MongoDB shell提示符,说明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 } } }
])
配置复制集以提高数据的高可用性。
修改配置文件:编辑/etc/mongod.conf
,添加复制集配置。
replication:
replSetName: "rs0"
启动MongoDB:
sudo systemctl restart mongod
初始化复制集:
在MongoDB shell中运行:
rs.initiate()
配置分片以支持大规模数据的水平扩展。
启动配置服务器:
mongod --configsvr --replSet csrs --dbpath /data/configdb --port 27019 --fork --logpath /var/log/mongodb/csrs.log
启动分片服务器:
mongod --shardsvr --dbpath /data/shard1 --port 27018 --fork --logpath /var/log/mongodb/shard1.log
启动mongos进程:
mongos --configdb csrs/localhost:27019 --fork --logpath /var/log/mongodb/mongos.log
添加分片:
在MongoDB shell中运行:
sh.addShard("localhost:27018")
通过掌握MongoDB的基本概念、安装与配置方法,以及如何使用MongoDB进行文档存储与查询,你可以构建高性能、可扩展的数据库应用,处理各种复杂的数据存储和查询需求。MongoDB灵活的数据模型和丰富的查询语言,使其适用于各种应用场景。