backend-cheats MongoDB 速查手册:从数据库准备到增删改查的完整实战指南
后端文档教程【免费下载链接】backend-cheats White paper for Backend developers项目地址https://gitcode.com/gh_mirrors/ba/backend-cheats点击查看免费下载本文是 backend-cheats 开源仓库中 MongoDB 速查手册 的中文深度讲解版。它以速查手册为核心骨架逐条拆解 MongoDB 在mongosh/mongoShell 中操作数据库、集合与文档的完整命令链覆盖数据库准备 → 插入 → 查询 → 更新 → 删除五大核心环节并在此基础上结合仓库 README 中关于 MongoDB 的定位NoSQL 文档型数据库、聚合、索引、驱动、扩展做纵深补充。读完本文你将掌握一套可直接复制运行的 MongoDB CRUD 命令集理解每个操作符的语义与适用场景并知道如何将速查技能延伸到聚合管道、索引优化与生产级横向扩展。MongoDB 是什么为什么需要这份速查手册根据仓库 README.md 中对 MongoDB 章节的定位MongoDB 是一种广受欢迎的 NoSQL 所面向的关系型数据库表 行 列 外键不同MongoDB 的表是集合collection行是文档document字段结构无需预先统一同一集合内不同文档可以拥有不同的字段集合。速查手册的主旨正如 README 所述学习创建/读取/更新/删除数据的基本循环其余内容按需查阅。因此本文的所有命令都围绕这个 CRUD 主循环展开适合作为后端开发者的日常检索工具也适合作为 MongoDB 入门的第一份动手清单。运行环境在哪个 Shell 中执行这些命令速查手册中的命令全部运行在 MongoDB 的交互式 Shell 中。现代 MongoDB 发行版默认提供mongoshMongoDB Shell较老的版本使用mongo。两条命令的语法一致本文全部命令均可直接粘贴执行mongosh # 连接本地默认实例localhost:27017 mongosh mongodb://user:passhost:port/db # 连接远程实例并指定数据库进入 Shell 后即可依次执行手册中的命令。若在 Shell 中执行db.xxx出现 ReferenceError请先确认已用use选中一个数据库。数据库准备连接、创建与清理速查手册的第一组命令用于准备数据库——即查看、切换、创建、列举与删除数据库show dbs // 显示所有数据库的列表 use db_name // 连接/创建名为 db_name 的数据库 db // 输出当前数据库的名称 db.createCollection(users) // 创建集合 users show collections // 显示当前数据库中的全部集合 db.dropDatabase() // 删除当前数据库逐个解读其行为与注意事项命令作用补充说明show dbs列出所有数据库仅列出至少包含一个文档或集合的数据库新建但为空的库不会出现在列表中use db_name切换到指定数据库MongoDB 采用惰性创建数据库/集合在第一次写入数据时才真正落盘因此use之后可以立即开始insert操作db显示当前数据库名常用于确认当前上下文避免误删/误写其他库db.createCollection(users)显式创建集合集合通常会在首次insertOne/insertMany时隐式创建此命令用于需要显式规划如设置固定大小集合的场景show collections列出当前库所有集合与旧版show tables等价db.dropDatabase()删除当前数据库危险操作执行后当前库及其全部集合、文档、索引将被永久删除无撤销机制实践建议在开发/测试环境频繁初始化数据时可以组合use与dropDatabase()快速重置库环境但生产环境务必先备份如mongodump再执行删除类操作。插入文档insertOne 与 insertMany速查手册的添加元素部分提供了单条与批量两种插入方式// 插入一条文档 db.users.insertOne({ name: Alex, age: 27, isMarried: false, city: NewYork }) // 插入多条文档 db.users.insertMany([{...}, {...}])要点说明insertOne(document)向users集合插入单个文档返回结果中包含新文档的_id。insertMany([doc1, doc2, ...])以数组形式一次插入多条文档减少网络往返是批量写入时的首选。文档即 JSON 风格对象字段类型无需预先声明isMarried: false这类布尔值、age: 27这类数值与字符串混排在同一个文档中完全合法——这正是文档型数据库相对关系型数据库的灵活性体现。若未显式指定_id字段MongoDB 会自动为每个文档生成唯一的 ObjectId 作为主键。从源码结构看仓库 README.md 将 MongoDB 归类为 NoSQL 中的文档型数据库document-oriented DB这类数据库以文档层级结构存储数据与键值型、列族型、图型数据库相并列。插入操作正是文档型存储模型的最直接体现无需预定义表结构文档即数据单元。查询文档find、findOne 与查询修饰符速查手册的获取元素部分是命令最丰富的一节涵盖全量查询、条件查询、单文档查询、排序、计数、限量与比较运算符// 获取集合中的所有文档 db.users.find(); // 按指定条件获取文档 db.users.find({ age: 27 }); // 获取单条文档 db.users.findOne({ name: Alex }); // 获取排序后的文档列表 // 1 - 升序-1 - 降序 db.users.find().sort({ age: 1 }); // 获取文档数量 db.users.find().count(); // 限制获取的文档数量 db.users.find().limit(10); // 使用比较运算符进行筛选 db.users.find({ age: { $gt: 20 } }); // age 20 db.users.find({ age: { $gte: 20 } }); // age 20 db.users.find({ age: { $lt: 50 } }); // age 50 db.users.find({ age: { $lte: 50 } }); // age 50 db.users.find({ age: { $ne: 35 } }); // age ! 35逐条拆解查询形式语义备注find()返回集合中全部文档实际返回的是游标cursorShell 中默认展示前 20 条可用it继续迭代find({ age: 27 })等值匹配筛选age恰好等于 27 的文档条件对象中的字段与值一一对应findOne({ name: Alex })返回满足条件的第一条文档无匹配时返回null适合查单条场景find().sort({ age: 1 })按age升序1或降序-1排序支持多字段排序如sort({ age: 1, city: -1 })find().count()统计满足条件的文档数量新版 MongoDB 推荐使用countDocuments()find().limit(10)限制最多返回 10 条文档常与sort组合实现取 Top N$gt/$gte/$lt/$lte/$ne大于 / 大于等于 / 小于 / 小于等于 / 不等于比较运算符需以{ 字段: { 运算符: 值 } }的嵌套对象形式书写比较运算符速查表以age字段为例运算符含义示例$gtgreater than大于{ age: { $gt: 20 } }$gtegreater than or equal大于等于{ age: { $gte: 20 } }$ltless than小于{ age: { $lt: 50 } }$lteless than or equal小于等于{ age: { $lte: 50 } }$nenot equal不等于{ age: { $ne: 35 } }在这些基础运算符之外MongoDB 还提供$eq严格等于、$in匹配数组内任一值、$nin不在数组内等扩展运算符写法与上表完全一致可在需要时按同一语法推演。更新文档整体替换、$set 与 $rename速查手册的修改元素部分演示了三种更新形态整体替换、局部字段修改与字段重命名// 整体替换文档第一个参数是查找条件 db.users.updateOne({name: Alex}, {новые_данные}) // 修改文档的指定字段 db.users.updateOne({name: Alex}, {$set: {age: 28, isMarried: true}}) // 重命名多个文档的字段 db.users.updateMany({name: Alex}, {$rename: {city: town}}) // 删除文档 db.users.deleteOne({name: Alex}) db.users.deleteMany({name: Alex})需要重点理解的三类更新语义整体替换replacementupdateOne(filter, replacementDocument)的第二个参数若是普通文档而非运算符对象MongoDB 会用它整体替换匹配到的文档_id不可变。原文档中该示例以占位符новые_данные意为新数据示意实际使用时请替换为完整的替换文档例如// 将 name 为 Alex 的文档整体替换为新的文档内容 db.users.updateOne({ name: Alex }, { name: Alex, age: 28, city: Boston });整体替换会丢弃原文档中未在新文档里出现的字段使用前需确认这是预期行为。局部修改$set{$set: {age: 28, isMarried: true}}只更新指定字段其他字段保持原样$set也是日常更新中最常用的更新运算符字段不存在时会自动创建该字段。字段重命名$rename{$rename: {city: town}}将匹配文档中的city字段改名为town。原文档中此处写作rename正确语法应为$rename本手册按官方运算符语法修正呈现。注意$rename不会修改字段值只改变字段名。另外可以关注updateOne与updateMany的语义差异——前者只更新第一条匹配的文档后者更新所有匹配的文档。若希望在文档不存在时自动插入新文档可追加{ upsert: true }选项如db.users.updateOne(filter, update, { upsert: true })这是生产代码中常用的有则更新、无则插入模式。删除文档deleteOne 与 deleteMany速查手册的删除命令与更新命令同组出现// 删除第一条匹配的文档 db.users.deleteOne({name: Alex}) // 删除所有匹配的文档 db.users.deleteMany({name: Alex})deleteOne(filter)仅删除满足条件的第一条文档即使有多条匹配也只删一条。deleteMany(filter)删除所有满足条件的文档若传入空条件{}则清空整个集合。删除是永久性操作配合dropDatabase()一起构成了完整的清理闭环deleteOne/deleteMany精确清数据dropDatabase()整体清库。从速查表走向生产实践聚合、索引、驱动与扩展速查手册解决的是CRUD 主循环而 README.md 为 MongoDB 学习者规划了从基础走向生产的完整路线这里将其要点与速查手册衔接如下聚合AggregationMongoDB 提供强大的聚合框架aggregation framework用于执行复杂查询与计算。手册中的find系列解决取数而聚合管道aggregation pipeline解决取数后的加工——分组、计数、求和、连表$lookup、字段投影等。典型入口是db.users.aggregate([...])。索引Indexes索引是提升 MongoDB 性能的核心概念。手册中的find({ age: 27 })、sort({ age: 1 })在数据量大时依赖索引才能保持高效可通过db.users.createIndex({ age: 1 })为高频查询字段建立索引。编程语言驱动Drivers在真实后端项目中开发者通常通过各语言的 MongoDB driver 调用本文所述操作而非常驻 Shell。安装对应语言的官方驱动后insertOne、find、updateOne、deleteOne等方法名与语义与 Shell 端保持一致便于知识迁移。最佳实践Best practicesREADME 建议学习 schema 设计、索引与查询优化的最佳实践以确保应用的性能与可扩展性——这些正是把速查手册用对、用好的前提。扩展ScalingMongoDB 通过分片sharding横向扩展与副本集replica sets纵向高可用来应对海量数据集与高流量这是速查手册之外、生产架构层面的下一站。关联文档与仓库导航本手册在仓库中与以下内容互为补充可按需继续深入MongoDB 速查手册原文档本文的原始骨架全部命令的俄文注释版本SQL 速查手册同一仓库下的关系型数据库对照速查涵盖CREATE TABLE、SELECT、JOIN、UPDATE、DELETE与聚合函数适合对比关系型 vs 文档型两种数据模型README.md仓库总览其 Databases 章节数据库分类、关系型数据库、MongoDB、Redis、ACID、数据库设计提供了本文内容在整个后端知识体系中的位置README_RUS.md俄文版仓库总览其 MongoDB 章节直接链接到本速查手册。结语这份速查手册的价值在于少而全从use db_name到deleteMany五组命令覆盖了 MongoDB 日常开发中最常用的全部 CRUD 形态。建议将它当作随身速查卡遇到插入多条想起insertMany遇到范围筛选想起$gt/$lte遇到只改字段想起$set遇到批量改名想起$rename——在掌握主循环之后再按 README 的路线向聚合、索引、驱动与扩展逐层深入就能完成从 Shell 新手到生产级 MongoDB 使用者的过渡。赞分享后端文档教程【免费下载链接】backend-cheats White paper for Backend developers项目地址https://gitcode.com/gh_mirrors/ba/backend-cheats点击查看免费下载相关推荐TinyDB 快速上手指南从安装到增删改查的纯 Python 文档数据库实战TinyDB 快速上手指南从安装到增删改查的纯 Python 文档数据库实战 TinyDB 是一个用纯 Python 编写、无外部依赖的轻量级文档型数据库数数据库嵌入式数据库TypeORM Repository API 全解从元数据到增删改查的完整实战指南TypeORM Repository API 全解从元数据到增删改查的完整实战指南 导读 Repository 是 TypeORM 面向单类实体的核心数据访问后端数据库ORMPixelStreamingInfrastructure信令协议权威参考20种WebSocket消息类型逐条拆解v1.1PixelStreamingInfrastructure信令协议权威参考20种WebSocket消息类型逐条拆解v1.1 PixelStreamingI上一篇wagmi useConnectionEffect监听钱包连接生命周期事件的 React Hook 实战指南下一篇抖音无水印视频下载解决方案专业内容管理与创作工具创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考