Skip to content

MongoDB 修仙指南 🐳

🌟 数据库御剑术

在这里你将习得:

  • 安装大法:一键部署灵脉 🖥️
  • 文档秘术:玩转JSON七巧板 🧩
  • 索引真经:查询速度御剑飞行 🚀
  • 聚合神通:数据炼丹炉 🔥

1. 安装四部曲 🛠️

1.1 添加灵脉源(APT源)

bash
# 导入天庭认证密钥
wget -qO - https://www.mongodb.org/static/pgp/server-6.0.asc | sudo apt-key add -

# 创建灵脉坐标
echo "deb [ arch=amd64,arm64 ] https://repo.mongodb.org/apt/ubuntu focal/mongodb-org/6.0 multiverse" | sudo tee /etc/apt/sources.list.d/mongodb-org-6.0.list

1.2 安装金丹(安装服务)

bash
sudo apt update && sudo apt install -y mongodb-org

1.3 启动护山大阵

bash
sudo systemctl start mongod
sudo systemctl enable mongod

验丹口诀

bash
mongo --eval 'db.runCommand({ connectionStatus: 1 })'
# 看到"ok" : 1 说明筑基成功!

2. 文档七巧板 📝

2.1 创建第一个仙府(数据库)

javascript
use my_first_realm
// 仙界法则:数据库懒加载,插入数据才真正创建

2.2 弟子名录(集合操作)

javascript
// 创建修仙者名录
db.createCollection("cultivators")

// 自动创建集合(当插入文档时)
db.immortals.insertOne({ name: "韩立", level: "筑基期" })

生活案例:就像Excel新建工作表,但更智能!

3. CRUD仙术大全 🧙♂️

3.1 点化弟子(Insert)

javascript
db.disciples.insertMany([
  { name: "南宫婉", sect: "掩月宗", age: 258 },
  { name: "厉飞雨", sect: "七玄门", age: 22 }
])

3.2 神识扫描(Find)

javascript
// 查找所有筑基期以上修士
db.cultivators.find({ level: { $gt: "筑基期" } })

3.3 修为突破(Update)

javascript
db.immortals.updateOne(
  { name: "韩立" },
  { $set: { level: "元婴期", weapon: "青竹蜂云剑" } }
)

避坑指南:更新操作符$set是护身符,忘记使用会直接覆盖修为!

4. 索引御剑术 🗡️

4.1 创建本命法宝(单字段索引)

javascript
db.immortals.createIndex({ name: 1 })

4.2 复合法宝(组合索引)

javascript
db.cultivators.createIndex({ sect: 1, level: -1 })
索引类型修炼速度适用场景
单字段⚡️精准查询
复合索引🚀多条件查询
全文索引🌪️经文搜索

5. 聚合炼丹炉 🔥

javascript
db.sect.aggregate([
  { $match: { size: { $gt: 100 } } }, // 筛选大宗门
  { $group: { 
    _id: "$region", 
    totalMembers: { $sum: "$members" }
  }},
  { $sort: { totalMembers: -1 } }
])

炼丹比喻:就像把灵草(数据)放入丹炉,经过多道工序(管道阶段),最终炼成仙丹(结果)!

6. 复制集与分片 🌀

6.1 分身术(复制集)

yaml
# 配置复制集
replication:
  replSetName: "immortal_rs"

6.2 法天象地(分片集群)

javascript
sh.addShard("shard1_replica_set/mongo1:27017")
sh.enableSharding("immortal_database")

架构图: 主节点(掌门) ←→ 从节点(长老)
分片1(东荒) ↔ 分片2(南域) ↔ 分片3(北原)

📜 MongoDB修仙口诀

安装配置三板斧,CRUD是基本功
索引就像御剑术,聚合管道炼丹炉
复制分片抗天劫,文档模型最灵活
ObjectId是身份证,更新操作要记清

🚨 渡劫注意事项

  1. 生产环境必启用认证:洞府大门要上锁
  2. 定期备份:时间回溯术要常备
  3. 监控慢查询:心魔要及时发现
  4. 合理分片:宗门太大要分堂管理
  5. 版本升级:修炼新功法提升境界

🎁 飞升技巧

javascript
// 时空法术(TTL索引)
db.logs.createIndex({ createTime: 1 }, { expireAfterSeconds: 3600 })

// 乾坤袋(压缩存储)
db.runCommand({ compact: "cultivators" })