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

MongoDB入门实战:从零开始掌握文档数据库操作

文章目录

  • 一、环境准备与基础操作
    • 1. 进入/创建数据库
    • 2. 插入首个文档
    • 3. 基础查询
  • 二、文档更新操作秘籍
    • 1. 字段操作
    • 2. 文档替换
  • 三、数组操作黑科技
    • 1. 嵌套文档创建
    • 2. 数组元素操作
  • 四、高级删除技巧
    • 1. 条件删除文档
    • 集合级操作
  • 五、实战技巧总结
  • 总结


一、环境准备与基础操作

1. 进入/创建数据库

use my_test // 进入/创建名为my_test的数据库

2. 插入首个文档

db.user.insert({ username: "sunwukong" }) // 创建user集合并插入第一条数据

3. 基础查询

db.user.find()  // 查看集合所有文档
db.user.find().count()  // 统计文档总数

二、文档更新操作秘籍

1. 字段操作

// 添加新字段
db.user.update(
  { username: "sunwukong" },
  { $set: { address: "huaguoshan" } }
)

// 删除指定字段
db.user.update(
  { username: "sunwukong" },
  { $unset: { address: 1 } }
)

2. 文档替换

db.user.update(
  { username: "zhubajie" },
  { username: "tangseng" }  // 完全替换原文档
)

三、数组操作黑科技

1. 嵌套文档创建

// 创建包含数组的嵌套文档
db.user.update(
  { username: "sunwukong" },
  { $set: { 
    hobby: {
      cities: ["beijing", "shanghai"],
      movies: ["sanguo", "hero"]
    }
  }}
)

2. 数组元素操作

// 添加新元素(允许重复)
db.user.update(
  { username: "tangseng" },
  { $push: { "hobby.movies": "Interstellar" } }
)

// 智能去重添加
db.user.update(
  { username: "tangseng" },
  { $addToSet: { "hobby.movies": "Interstellar" } }
)

// 精准删除元素,$pull删除数组中所有满足指定条件的元素
db.user.update(
  { username: "tangseng" },
  { $pull: { "hobby.movies": "Interstellar" } }
)
// 使用 $pullAll 删除多个指定值,删除数组中所有匹配给定值的元素。
db.user.update({username:"tangseng" },
{ $pullAll: {"hobby.movies": ["Interstellar","King of comedy"] } });
// 使用 $pop 删除首尾元素。功能:删除数组的第一个或最后一个元素。 1: 删除最后一个元素,-1: 删除第一个元素
db.user.update({username:"tangseng" },
{ $pop: {"hobby.movies": -1 } })

四、高级删除技巧

1. 条件删除文档

db.user.remove({ "hobby.cities": "beijing" }) // 删除包含指定数组元素的文档

集合级操作

db.user.drop() // 慎用!删除整个集合

五、实战技巧总结

操作类型常用命令特点说明
插入操作insert自动创建集合
查询操作find+count支持条件过滤
更新操作update+$set/$unset精确字段控制
数组操作$push/$addToSet/$pull支持嵌套结构操作
删除操作remove+条件 / drop区分文档级和集合级删除

总结

通过掌握这些核心操作,您已经可以完成MongoDB约80%的日常开发需求。接下来可以深入探索聚合管道、索引优化等高级特性,进一步提升数据库操作效率。

相关文章:

  • 科普:特征、规则、模型,及Lift(提升度)
  • Stable Diffusion 3.0 :一键开启你的AI绘画之旅
  • C++ --- 二叉搜索树
  • Ubuntu 重置密码方法
  • 【教学类-58-14】黑白三角拼图12——单页1页图。参考图1页6张(黑白、彩色)、板式(无圆点、黑圆点、白圆点)、宫格2-10、张数6张,适合集体操作)
  • 使用飞书API自动化更新共享表格数据
  • C++ 继承:面向对象编程的核心概念(一)
  • STL之list
  • Selenium之Web Driver常用属性
  • WPF ContentPresenter详解2
  • Docker-清理容器空间prune
  • 顺序表(C语言源码详解,附加测试代码)
  • 波斯白板(Persian Whiteboard)
  • MFC中如何判断一个窗口当前状态是显示还是隐藏
  • Python 异常处理完全指南
  • 基于YOLOv8深度学习的PCB缺陷检测识别系统【python源码+GUI界面+数据集+训练代码+登录界面】
  • [AI绘图] ComfyUI 中自定义节点插件安装方法
  • 雕琢健康生活,奏响养生乐章
  • 使用Geotools从DEM数据中读取指定位置的高程实战
  • 【图论】网络流算法入门
  • 陈逸飞《黄河颂》人物造型与借鉴影像意义
  • 美国证实加拿大及墨西哥汽车零部件免关税
  • 八成盈利,2024年沪市主板公司实现净利润4.35万亿元
  • 投资者建议发行优惠套票给“被套”小股东,张家界:将研究考虑
  • 国务院食安办:加强五一假期食品生产、销售、餐饮服务环节监管
  • 外媒称菲方允许菲官员窜台,国台办:应停止在台湾问题上玩火