文章目录
一、环境准备与基础操作
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%的日常开发需求。接下来可以深入探索聚合管道、索引优化等高级特性,进一步提升数据库操作效率。