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

文章目录


一、环境准备与基础操作

1. 进入/创建数据库

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

2. 插入首个文档

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

3. 基础查询

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

二、文档更新操作秘籍

1. 字段操作

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

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

2. 文档替换

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

三、数组操作黑科技

1. 嵌套文档创建

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

2. 数组元素操作

c 复制代码
// 添加新元素(允许重复)
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%的日常开发需求。接下来可以深入探索聚合管道、索引优化等高级特性,进一步提升数据库操作效率。

相关推荐
ManageEngineITSM18 分钟前
工单优先级怎么定?影响×紧急度矩阵的设计与落地方法
java·大数据·运维·前端·数据库·变更管理
科研online21 分钟前
数据资源:中国10年旅游流动网络数据集
数据库
智商网输送线配件22 分钟前
电子制造零散耗材补货实战:小批量混批采购平台怎么选才不停机?
大数据·服务器·前端·数据库·自动化
小冯不疯1 小时前
集成中心架构:PULL × PUSH × 集成转换的三大引擎
数据库·架构
tryxr1 小时前
数据库如何通过 MVCC 实现隔离性
数据库·mysql·mvcc·隔离性
yeflx1 小时前
Ubuntu22.04安装Mysql Workbench
数据库·mysql·adb
PaperData1 小时前
1986-2025年《中国能源统计年鉴》全年份pdf+excel版
数据库·能源
SelectDB技术团队1 小时前
日志场景 Elasticsearch 替换实操:建表、索引、写入链路与查询改写的完整参数
大数据·数据库·数据仓库·elasticsearch·全文检索·日志分析·apache doris
百数平台2 小时前
低代码安全技术实践:表单 / 流程 / 报表三级权限体系设计解析
java·大数据·数据库
驭渊的小故事2 小时前
MyBatis-Plus 实战指南:从基础 CRUD 到条件构造器与自定义 SQL(二)
数据库·sql·mybatis