本文共 2322 字,大约阅读时间需要 7 分钟。
MongoDB是一个NoSQL数据库,具有高性能、无模式、文档型的特点。它是NoSQL数据库中功能最丰富,最像关系数据库的。
MongoDB数据库的最小数据集是文档,类似于MySQL的数据记录。集合则是由一组文档构成,类似于MySQL的表。库是数据库的独立实例,拥有自己的用户和权限。实例则指系统运行的MongoDB进程。
MongoDB作为NoSQL数据库,具有以下特性:
适用场景包括:应用不需要事务,数据模型难以确定,QPS达到2000以上,存储量达到TB级别,需要进行地理位置或文本查询的场景,如游戏、社交、物流、物联网和视频直播等。
默认数据库包括admin、config和local,用于存储系统配置和副本集元数据。
use database
切换库,或db.createCollection(name)
创建集合。db.collection.insert()
插入单条数据,或db.collection.insertMany()
批量插入。db.collection.find()
查询全部文档,db.collection.findOne()
查询单条数据。find()
方法传入过滤条件和投影。db.collection.update()
更新单条数据,或db.collection.updateMany()
批量更新。db.collection.remove()
删除单条或全部数据。db.collection.count()
统计文档数量。limit()
限制返回条数,skip()
跳过数据,sort()
排序。$gt
、$lt
等操作符。createIndex()
创建索引,dropIndex()
删除索引。fsyncLock()
加锁,fsyncUnlock()
解锁。startTransaction()
管理。复制集是MongoDB的高可用架构,采用一主多从结构。主节点负责写操作,从节点负责读取和故障恢复。
从节点分为几类:
复制集特性:
systemLog: destination: file path: /data/db1/mongod.log logAppend: truestorage: dbPath: /data/db1net: bindIp: 0.0.0.0 port: 28017replication: replSetName: rs0processManagement: fork: true
启动命令:mongod -f /data/db1/mongod.conf
rs.initiate()
rs.add("centosvm:28018")
rs.status()
rs.slaveOk()
,验证数据同步。写操作通过writeConcern
控制确认次数。writeConcern:{w:n}
指定确认节点数,j
参数控制是否写入journal日志。
读取策略通过readPreference
控制节点选择。readConcern
控制读取的数据一致性。
策略类型:
primary
:只读主节点。secondary
:只读从节点。nearest
:读取地理位置最近的节点。分片集群通过多个复制集横向扩展,提升数据处理能力。
架构包括:
分片数量计算:
MongoDB提供两种备份方式:
备份策略:
通过全量备份和oplog日志,能够快速恢复到指定时间点的数据状态。
转载地址:http://tsffk.baihongyu.com/