当前位置: 首页 > article >正文

MongoDB从零基础搭建到实战

MongoDB从零基础搭建到实战MongoDB作为当下最流行的开源文档型NoSQL数据库凭借灵活的文档结构、高扩展性和易用性成为前后端开发、大数据存储、云原生项目的首选数据库之一。相比传统关系型数据库它无需严格预定义表结构适配多变的业务数据需求尤其适合Node.js、Python、Java等主流开发场景。本篇教程将从零开始带你完成MongoDB的环境搭建、基础配置、核心命令操作、可视化工具使用、高级查询与实战全程步骤详细、代码可直接复用适合零基础新手入门也适合有基础的开发者查漏补缺。一、MongoDB核心概念先理清学习MongoDB前先搞懂核心术语避免和关系型数据库混淆上手更快。1.1 MongoDB与关系型数据库核心对比MongoDB术语关系型数据库MySQL/Oracle术语说明数据库Database数据库Database存储数据的容器一个MongoDB可建多个库集合Collection数据表Table无需预定义结构存储同类文档动态扩容文档Document数据行Row最小数据单元用BSON格式类JSON支持更多数据类型字段Field数据列Column文档中的键值对支持嵌套、数组结构_id主键Primary KeyMongoDB自动生成唯一主键也可自定义1.2 核心特性文档型存储数据以BSON格式存储支持嵌套对象、数组无需严格Schema高可用支持副本集主节点故障自动切换保证数据不丢失高扩展性支持分片集群应对海量数据和高并发场景丰富查询支持条件查询、聚合、索引、排序、分页媲美关系型数据库跨平台支持Windows、Mac、Linux全系统兼容主流开发语言二、MongoDB环境搭建全系统教程MongoDB分为**社区版Community**和企业版个人学习和中小型项目使用社区版完全足够本篇以最新稳定版MongoDB 7.0为例讲解。2.1 系统环境要求WindowsWindows 10 及以上版本MacmacOS 10.15 及以上版本LinuxUbuntu 18.04/CentOS 7/Debian 10内存建议至少2GB开发环境1GB也可运行2.2 Windows系统安装与配置2.2.1 下载安装包访问MongoDB官方下载地址https://www.mongodb.com/try/download/community选择Version7.0最新稳定版PlatformWindowsPackageMSI点击Download下载安装包双击运行2.2.2 安装步骤同意协议选择Complete完整安装新手推荐服务配置页面勾选“Install MongoD as a Service”设置服务自动启动数据目录默认C:\Program Files\MongoDB\Server\7.0\data日志目录默认C:\Program Files\MongoDB\Server\7.0\log无需修改取消勾选“Install MongoDB Compass”后续单独安装可视化工具点击Install完成安装2.2.3 配置环境变量关键右键此电脑→属性→高级系统设置→环境变量在系统变量中找到Path点击编辑→新建添加MongoDB的bin目录路径C:\Program Files\MongoDB\Server\7.0\bin一路确定保存打开命令提示符CMD输入mongod --version显示版本号即配置成功2.2.4 启动与关闭服务启动服务管理员CMD输入net start MongoDB关闭服务管理员CMD输入net stop MongoDB连接数据库CMD输入mongosh进入MongoDB命令行客户端2.3 Mac系统安装与配置2.3.1 Homebrew安装推荐打开终端安装MongoDB官方tapbrew tap mongodb/brew安装社区版brew install mongodb-community7.02.3.2 启动服务开机自启brew services start mongodb-community7.0临时启动mongod --config /opt/homebrew/etc/mongod.conf连接数据库终端输入mongosh2.4 LinuxUbuntu系统安装与配置导入公钥wget -qO - https://www.mongodb.org/static/pgp/server-7.0.asc | sudo apt-key add -添加软件源echo deb [ archamd64,arm64 ] https://repo.mongodb.org/apt/ubuntu jammy/mongodb-org/7.0 multiverse | sudo tee /etc/apt/sources.list.d/mongodb-org-7.0.list更新源并安装sudo apt-get update sudo apt-get install -y mongodb-org启动服务sudo systemctl start mongod设置开机自启sudo systemctl enable mongod连接数据库mongosh2.5 验证安装成功任意系统终端输入mongosh出现以下提示即连接成功Current Mongosh Log ID: xxxxxxxx Connecting to: mongodb://127.0.0.1:27017/ Using MongoDB:7.0.0 Using Mongosh:2.0.0 test默认连接端口27017默认数据库test三、MongoDB基础核心操作mongosh命令行进入mongosh客户端后即可执行数据库、集合、文档的增删改查操作所有命令区分大小写以下为高频常用命令建议收藏。3.1 数据库操作3.1.1 查看所有数据库show dbs # 或 show databases注意空数据库不会显示插入数据后才会展示3.1.2 创建/切换数据库# 语法use 数据库名 use mydb # 切换到mydb库不存在则自动创建3.1.3 查看当前所在数据库db3.1.4 删除数据库# 先切换到要删除的库 use mydb # 执行删除 db.dropDatabase()3.2 集合操作相当于数据表3.2.1 创建集合MongoDB无需手动创建集合插入文档时自动创建也可手动创建指定配置# 手动创建集合 db.createCollection(user)# 创建固定大小集合可选 db.createCollection(log,{capped:true,size:1024*1024,max:1000})3.2.2 查看所有集合show collections # 或 show tables3.2.3 删除集合# 语法db.集合名.drop()db.user.drop()3.3 文档操作核心增删改查文档是MongoDB的核心以键值对形式存储支持嵌套、数组以下用user集合演示。3.3.1 插入文档插入单个文档db.user.insertOne({name:张三,age:22,gender:男,hobby:[编程,篮球],address:{city:北京,district:朝阳区},createTime:newDate()})插入多个文档db.user.insertMany([{name:李四,age:25,gender:女,hobby:[读书,旅游]},{name:王五,age:19,gender:男,hobby:[游戏,摄影]},{name:赵六,age:28,gender:女,hobby:[健身,美食]}])3.3.2 查询文档查询所有文档格式化输出db.user.find().pretty()条件查询#1.精确查询查找姓名为张三的用户 db.user.find({name:张三}).pretty()#2.比较查询年龄大于20的用户($gt大于,$lt小于,$gte大于等于,$lte小于等于,$ne不等于)db.user.find({age:{$gt:20}}).pretty()#3.多条件且查询年龄20-30之间的男性用户 db.user.find({age:{$gte:20,$lte:30},gender:男}).pretty()#4.或查询男性或年龄大于25db.user.find({$or:[{gender:男},{age:{$gt:25}}]}).pretty()#5.模糊查询姓名包含三db.user.find({name:/三/}).pretty()#6.字段过滤只显示name和age隐藏_id db.user.find({},{name:1,age:1,_id:0}).pretty()排序、分页、统计# 排序按年龄升序1升序-1降序 db.user.find().sort({age:1}).pretty()# 分页跳过2条取2条skip跳过条数limit取条数 db.user.find().skip(2).limit(2).pretty()# 统计总数 db.user.countDocuments()# 条件统计 db.user.countDocuments({gender:男})3.3.3 更新文档更新单个文档# 将张三的年龄改为23db.user.updateOne({name:张三},# 查询条件{$set:{age:23}}# 更新内容)更新多个文档# 所有女性用户添加status字段 db.user.updateMany({gender:女},{$set:{status:active}})替换整个文档db.user.replaceOne({name:王五},{name:王五,age:20,gender:男,hobby:[阅读]})3.3.4 删除文档# 删除单个文档删除赵六 db.user.deleteOne({name:赵六})# 删除多个文档删除年龄小于20的用户 db.user.deleteMany({age:{$lt:20}})# 清空集合所有文档保留集合 db.user.deleteMany({})四、MongoDB可视化工具使用MongoDB Compass命令行操作适合熟练开发者新手推荐使用MongoDB Compass官方免费可视化工具图形化界面操作无需记命令直观管理数据库。4.1 安装与连接下载地址https://www.mongodb.com/products/compass安装后打开默认连接地址mongodb://localhost:27017点击Connect即可连接本地MongoDB服务4.2 核心功能可视化查看所有数据库、集合、文档图形化新增、编辑、删除文档可视化创建索引、执行查询语句查看数据库性能、数据统计导入导出数据支持JSON、CSV格式五、MongoDB高级操作5.1 索引管理提升查询效率索引是MongoDB性能优化的核心避免全表扫描常用索引操作# 创建单字段索引 db.user.createIndex({name:1})# 创建复合索引 db.user.createIndex({age:1,name:-1})# 查看所有索引 db.user.getIndexes()# 删除索引 db.user.dropIndex(name_1)5.2 聚合查询Aggregation适合复杂数据统计、分组、计算类似SQL的GROUP BY# 按性别分组统计每组人数和平均年龄 db.user.aggregate([{$group:{_id:$gender,count:{$sum:1},avgAge:{$avg:$age}}}])5.3 数据备份与恢复5.3.1 备份数据mongodump# 备份所有数据库mongodump# 备份指定数据库mongodump-dmydb-o./backup5.3.2 恢复数据mongorestore# 恢复所有数据库mongorestore# 恢复指定数据库mongorestore-dmydb ./backup/mydb六、常见问题与避坑指南mongosh无法连接检查MongoDB服务是否启动端口27017是否被占用插入数据后数据库不显示空数据库不展示插入集合数据后自动显示查询速度慢未创建索引对高频查询字段建立索引权限问题生产环境务必设置账号密码禁止外网直接访问27017端口数据丢失重要数据定期备份生产环境建议搭建副本集保证高可用七、总结本篇教程完整覆盖了MongoDB从环境搭建、基础命令、可视化操作到高级实战的全流程MongoDB的灵活文档结构和易用性让它成为现代开发的必备数据库。零基础新手按照步骤一步步操作即可快速上手进阶开发者可重点掌握索引优化、聚合查询、副本集搭建等内容适配生产环境需求。后续可深入学习MongoDB集群部署、事务操作、与主流编程语言Node.js/Python/Java集成等内容进一步提升开发和运维能力。

相关文章:

MongoDB从零基础搭建到实战

MongoDB从零基础搭建到实战 MongoDB作为当下最流行的开源文档型NoSQL数据库,凭借灵活的文档结构、高扩展性和易用性,成为前后端开发、大数据存储、云原生项目的首选数据库之一。相比传统关系型数据库,它无需严格预定义表结构,适配…...

医用擦拭纸选购指南:看懂这五大认证,避开医疗耗材采购“隐形坑

# 医用擦拭纸选购指南:看懂这五大认证,避开医疗耗材采购“隐形坑”> 在医疗领域,每一片看似普通的擦拭纸,都直接关系到诊疗安全、院感控制和患者健康。对于医疗器械经销商、医院后勤管理者而言,选择供应商时最核心的…...

Vivado综合策略的‘隐藏菜单’:手把手教你用TCL定制专属策略,榨干UltraScale+性能

Vivado综合策略的‘隐藏菜单’:手把手教你用TCL定制专属策略,榨干UltraScale性能 当你在Vivado中点击"Run Synthesis"时,是否曾好奇那些预设策略背后究竟发生了什么?对于大多数FPGA设计,Vivado提供的预设策略…...

Verilog新手避坑指南:从HDLBits的Getting Started到Vectors,我踩过的那些坑

Verilog新手避坑指南:从HDLBits的Getting Started到Vectors,我踩过的那些坑 第一次接触Verilog时,我像大多数初学者一样,被它既像C语言又不像C语言的语法搞得晕头转向。HDLBits这个在线练习平台确实是个好帮手,但当我从…...

2026 GitHub 高星项目全景指南

一、GitHub 全球 Star 最高项目(2026年3月 实时数据) GitHub 无官方总 Star 榜单,以下为综合第三方统计与实时检索的全球高星项目 Top10,数据动态更新,以仓库主页为准: 排名 项目名称 Star 数 核心定位 1 build-your-own-x ⭐47.4万+ 从零实现各类技术的教程合集 2 awes…...

openclaw喂饭教程!在 Linux 环境下快速完成安装、初始化与 Web UI 配置

基础示例:单工作表 Excel 转 TXT 以下是将一个 Excel 文件中的第一个工作表转换为 TXT 的完整步骤: 1. 加载并读取Excel文件 from spire.xls import * from spire.xls.common import * workbook Workbook() workbook.LoadFromFile("示例.xlsx"…...

松江少儿英语口碑好的?

松江少儿英语口碑好的 环球乐学少儿英语,指出幼儿英语学习三大痛点: 1. 兴趣不足易抵触:教学形式枯燥,多以机械记单词、跟读为主,不符合幼儿认知特点,易产生厌学情绪。 2. 缺语境不会运用&#xff1a…...

DTII(A) 9.12.2、带调节挡板漏斗

示意图主视图侧视图C向法兰口Z向:操纵杆安装位置【说明】【表9-48】带调节挡板漏斗相关参数参数说明其它参数同 “普通漏斗”;【L5】调节挡板底座 与 漏斗壁 距离。【260】调节挡板底座长度。【注意】...

FastAdmin框架旧版本踩坑记:手把手教你修复那个能读任意文件的CVE-2024-7928漏洞

FastAdmin框架安全实战:深度解析CVE-2024-7928漏洞修复与防御策略 当安全扫描报告突然标红显示"FastAdmin框架存在任意文件读取漏洞(CVE-2024-7928)"时,作为项目负责人的你可能会瞬间心跳加速。这个看似简单的漏洞编号背…...

掌握Agentic RAG:动态智能代理,提升大模型学习与实战效率,CSDN小白程序员必收藏!

掌握Agentic RAG:动态智能代理,提升大模型学习与实战效率,CSDN小白程序员必收藏! Agentic RAG技术通过引入自主AI代理,解决了传统RAG系统依赖静态数据的局限性,实现实时检索最新数据,灵活调整策…...

AgentScope Java:阿里开源的多智能体框架,让AI应用开发变得简单

为什么我们需要Agent框架? 如果你开发过AI应用,一定遇到过这些问题: LLM只能生成文本,无法查询数据库、调用API、执行计算多轮对话需要管理上下文,但手动维护消息历史太繁琐复杂的任务需要多步推理,简单的…...

掌握4大核心策略,让你的暗黑3效率提升200%:D3KeyHelper自动化配置全指南

掌握4大核心策略,让你的暗黑3效率提升200%:D3KeyHelper自动化配置全指南 【免费下载链接】D3keyHelper D3KeyHelper是一个有图形界面,可自定义配置的暗黑3鼠标宏工具。 项目地址: https://gitcode.com/gh_mirrors/d3/D3keyHelper D3Ke…...

解锁炉石传说终极体验:HsMod插件效率革命全指南

解锁炉石传说终极体验:HsMod插件效率革命全指南 【免费下载链接】HsMod Hearthstone Modify Based on BepInEx 项目地址: https://gitcode.com/GitHub_Trending/hs/HsMod 你是否曾因炉石传说漫长的动画等待而失去耐心?是否希望自定义游戏界面却苦…...

字节Agent开发岗面试血泪史:ReAct框架、IterResearch架构、训练流程全解析,小白必看!收藏!

字节Agent开发岗面试血泪史:ReAct框架、IterResearch架构、训练流程全解析,小白必看!收藏! 文章通过字节Agent开发岗校招面试实例,揭示候选人因缺乏底层逻辑和工程实现细节而失败。详细解析ReAct框架、IterResearch架构…...

收藏!小白程序员也能轻松掌握大模型:VLLM入门指南与实战教程

收藏!小白程序员也能轻松掌握大模型:VLLM入门指南与实战教程 VLLM是由伯克利大学LMSYS组织开源的大语言模型高速推理框架,通过PagedAttention技术、连续批处理和优化CUDA内核,显著提升模型推理吞吐量和内存效率。本文详细介绍了VL…...

JavaScript金融计算中的精度陷阱与高精度解决方案

1. 金融计算中的精度灾难:从0.10.2≠0.3说起 如果你在Chrome控制台输入0.1 0.2,得到的不是预期的0.3,而是0.30000000000000004这个诡异的数字。我第一次在支付系统对接时遇到这个问题,差点因为几分钱的差额导致整个对账流程崩溃。…...

OpenClaw怎么安装?2026年OpenClaw(Clawdbot)阿里云萌新7分钟部署保姆级指南

OpenClaw怎么安装?2026年OpenClaw(Clawdbot)阿里云萌新7分钟部署保姆级指南。本文面向零基础用户,完整说明在轻量服务器与本地Windows11、macOS、Linux系统中部署OpenClaw(Clawdbot)的流程,包含…...

Vortex模组管理器:从架构到实战的全方位技术指南

Vortex模组管理器:从架构到实战的全方位技术指南 【免费下载链接】Vortex Vortex: Nexus-Mods开发的游戏模组管理器,用于简化模组的安装和管理过程。 项目地址: https://gitcode.com/gh_mirrors/vor/Vortex 一、Vortex核心架构解析 模组管理的&q…...

别再重复造轮子了!手把手教你用Vue3 + v3layer组件库,5分钟搞定PC端复杂弹窗需求

Vue3弹窗开发实战:从零封装到v3layer高效解决方案 在PC端Web应用开发中,弹窗组件几乎是每个项目都无法绕开的基础功能。从简单的提示框到复杂的交互式面板,弹窗承载着信息展示、用户反馈、表单提交等多样化需求。传统开发模式下,前…...

bge-large-zh-v1.5在RAG中的应用:提升问答系统准确率

bge-large-zh-v1.5在RAG中的应用:提升问答系统准确率 1. RAG系统与Embedding模型的关系 1.1 什么是RAG系统 RAG(Retrieval-Augmented Generation)系统是现代问答系统的核心技术架构,它通过两个关键步骤回答用户问题&#xff1a…...

高并发场景下的FUTURE POLICE服务架构设计

高并发场景下的FUTURE POLICE服务架构设计 最近和几个做智能语音项目的朋友聊天,大家普遍遇到一个头疼的问题:模型效果不错,但用户一多,服务就卡顿甚至崩溃。特别是像FUTURE POLICE这类语音合成模型,生成一段高质量的…...

Asian Beauty Z-Image Turbo 跨平台部署:基于.NET框架的Windows桌面应用集成

Asian Beauty Z-Image Turbo 跨平台部署:基于.NET框架的Windows桌面应用集成 最近在做一个Windows桌面项目,需要集成一个图片生成功能。团队里的小伙伴用Python在服务器上跑了一个Asian Beauty Z-Image Turbo模型,效果挺惊艳的,但…...

基于LFM2.5-1.2B-Thinking-GGUF的Java面试题智能生成与解析系统

基于LFM2.5-1.2B-Thinking-GGUF的Java面试题智能生成与解析系统 1. 解决Java面试准备的痛点 对于Java开发者来说,面试准备往往是个耗时费力的过程。传统的刷题方式存在几个明显问题:一是题库更新慢,跟不上技术发展;二是题目质量…...

智能家庭网络新选择:iStoreOS开源路由系统全攻略

智能家庭网络新选择:iStoreOS开源路由系统全攻略 【免费下载链接】istoreos 提供一个人人会用的的路由、NAS系统 (目前活跃的分支是 istoreos-22.03) 项目地址: https://gitcode.com/gh_mirrors/is/istoreos 为什么家庭网络需要专业级…...

大模型学习进阶:收藏必备,小白程序员快速掌握RAG架构核心技术!

大模型学习进阶:收藏必备,小白程序员快速掌握RAG架构核心技术! 本文深入解析了RAG(检索增强生成)大模型的核心技术及其重要性,详细介绍了标准RAG、对话式RAG、纠正式RAG、自适应RAG、自我反思RAG、融合RAG、…...

手把手教你用树莓派+USRP B210搭建一个低成本SDR开发环境(含完整配置流程)

树莓派USRP B210:低成本SDR开发环境搭建全指南 从零开始的SDR硬件选型 在软件定义无线电(SDR)的世界里,设备价格往往成为初学者最大的门槛。专业级设备动辄上万元,而真正适合学习开发的USRP B210配合树莓派的组合,却能以不到五千元…...

太阳光模拟器的光源类型及标准分类

太阳光模拟器是可精准复现自然太阳光光谱、辐照强度性的核心测试设备,广泛应用于光伏测试、材料老化、航空航天等多个领域,为各类光敏工艺和材料的室内可控测试提供重要支撑。下文,紫创测控luminbox将从光源脉冲时间、IEC等级标准、光源种类以…...

掌握Trilium Notes:从入门到精通的完整路径

掌握Trilium Notes:从入门到精通的完整路径 【免费下载链接】trilium-translation Translation for Trilium Notes. Trilium Notes 中文适配, 体验优化 项目地址: https://gitcode.com/gh_mirrors/tr/trilium-translation Trilium Notes作为一款开源知识管理…...

LaTeX投稿Elsevier期刊必备:elsarticle.cls从安装到实战避坑指南

LaTeX投稿Elsevier期刊必备:elsarticle.cls从安装到实战避坑指南 科研工作者向Elsevier投稿时,elsarticle.cls文档类是最常用的工具之一。不同于基础教程,本文将聚焦实际投稿过程中的高频痛点,从环境配置到排版细节,提…...

剪映视频去水印+去字幕+去logo三合一操作流程(新手必备)

在短视频创作热潮中,剪映凭借免费、易用的优势,成为多数创作者的首选剪辑工具。但在实际使用中,不少人会遇到一个共性问题:剪映导出的视频自带水印、素材中夹杂多余字幕,或搬运、引用的素材带有品牌Logo,尤…...