您好,登录后才能下订单哦!
MongoDB是一个基于分布式文件存储的开源数据库系统,由C++语言编写。它旨在为WEB应用提供可扩展的高性能数据存储解决方案。MongoDB是一个介于关系数据库和非关系数据库之间的产品,是非关系数据库当中功能最丰富,最像关系数据库的。
特性 | MongoDB | 传统关系型数据库 |
---|---|---|
数据模型 | 文档模型 | 表模型 |
模式 | 动态模式 | 静态模式 |
扩展性 | 水平扩展 | 垂直扩展 |
查询语言 | 丰富的查询语言 | SQL |
事务支持 | 支持多文档事务 | 支持事务 |
性能 | 高性能,适合大量数据 | 适合中小规模数据 |
数据一致性 | 最终一致性 | 强一致性 |
适用场景 | 大数据、实时分析、内容管理等 | 事务处理、复杂查询等 |
在安装MongoDB之前,需要确保系统满足以下要求:
下载MongoDB安装包:
安装MongoDB:
配置环境变量:
C:\Program Files\MongoDB\Server\5.0\bin
)添加到系统的PATH
环境变量中。启动MongoDB:
mongod
启动MongoDB服务。27017
端口。添加MongoDB的APT源:
wget -qO - https://www.mongodb.org/static/pgp/server-5.0.asc | sudo apt-key add -
echo "deb [ arch=amd64,arm64 ] https://repo.mongodb.org/apt/ubuntu focal/mongodb-org/5.0 multiverse" | sudo tee /etc/apt/sources.list.d/mongodb-org-5.0.list
sudo apt-get update
安装MongoDB:
sudo apt-get install -y mongodb-org
启动MongoDB:
sudo systemctl start mongod
设置开机自启动:
sudo systemctl enable mongod
使用Homebrew安装MongoDB:
brew tap mongodb/brew
brew install mongodb-community
启动MongoDB:
brew services start mongodb-community
验证安装:
mongo --version
MongoDB的配置文件通常位于/etc/mongod.conf
(Linux)或C:\Program Files\MongoDB\Server\5.0\bin\mongod.cfg
(Windows)。以下是一些常见的配置项:
127.0.0.1
,可以设置为0.0.0.0
以允许远程访问。27017
。/data/db
(Linux)或C:\data\db
(Windows)。启动MongoDB:
sudo systemctl start mongod
启动MongoDB。mongod
启动MongoDB。停止MongoDB:
sudo systemctl stop mongod
停止MongoDB。mongod
进程并结束它。启用身份验证:
security:
authorization: enabled
创建用户:
mongo
命令连接到MongoDB,执行以下命令创建用户:
use admin
db.createUser({
user: "admin",
pwd: "password",
roles: [ { role: "userAdminAnyDatabase", db: "admin" } ]
})
连接MongoDB:
mongo -u admin -p password --authenticationDatabase admin
备份数据库:
mongodump
命令备份数据库:
mongodump --db mydb --out /backup/mydb
恢复数据库:
mongorestore
命令恢复数据库:
mongorestore --db mydb /backup/mydb
创建数据库:
use mydb
查看数据库:
show dbs
删除数据库:
db.dropDatabase()
创建集合:
db.createCollection("mycollection")
查看集合:
show collections
删除集合:
db.mycollection.drop()
插入文档:
db.mycollection.insert({ name: "Alice", age: 25 })
查询文档:
db.mycollection.find({ name: "Alice" })
更新文档:
db.mycollection.update({ name: "Alice" }, { $set: { age: 26 } })
删除文档:
db.mycollection.remove({ name: "Alice" })
创建索引:
db.mycollection.createIndex({ name: 1 })
查看索引:
db.mycollection.getIndexes()
删除索引:
db.mycollection.dropIndex({ name: 1 })
条件查询:
db.mycollection.find({ age: { $gt: 20 } })
排序查询:
db.mycollection.find().sort({ age: -1 })
分页查询:
db.mycollection.find().skip(10).limit(5)
db.mycollection.aggregate([
{ $match: { age: { $gt: 20 } } },
{ $group: { _id: "$name", total: { $sum: 1 } } }
])
复制集是MongoDB实现高可用性的核心机制。一个复制集通常包含一个主节点(Primary)和多个从节点(Secondary)。主节点负责处理写操作,从节点负责复制主节点的数据并提供读操作。
配置复制集:
rs.initiate({
_id: "rs0",
members: [
{ _id: 0, host: "localhost:27017" },
{ _id: 1, host: "localhost:27018" },
{ _id: 2, host: "localhost:27019" }
]
})
查看复制集状态:
rs.status()
分片是MongoDB实现水平扩展的核心机制。通过分片,可以将数据分布到多个服务器上,从而实现海量数据的存储和处理。
配置分片:
sh.addShard("shard1/localhost:27018")
sh.addShard("shard2/localhost:27019")
启用分片:
sh.enableSharding("mydb")
分片集合:
sh.shardCollection("mydb.mycollection", { name: 1 })
MongoDB支持多文档事务,可以在一个事务中执行多个操作,并保证这些操作的原子性。
开启事务:
session.startTransaction()
提交事务:
session.commitTransaction()
回滚事务:
session.abortTransaction()
MongoDB支持多种数据压缩算法,可以有效减少存储空间的使用。
storage:
wiredTiger:
engineConfig:
cacheSizeGB: 1
journalCompressor: snappy
directoryForIndexes: true
collectionConfig:
blockCompressor: snappy
MongoDB支持数据加密,可以有效保护数据的安全性。
security:
enableEncryption: true
encryptionKeyFile: /path/to/keyfile
mongostat
、mongotop
等,发现故障原因。MongoDB Atlas是MongoDB官方提供的云服务,支持自动备份、监控、报警等功能,适合中小型企业使用。
MongoDB Compass是MongoDB官方提供的图形化管理工具
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。