MongoDB新手教学

目录

[一、MongoDB 基础认知](#一、MongoDB 基础认知)

[什么是 MongoDB?](#什么是 MongoDB?)

二、环境准备

[安装 MongoD](#安装 MongoD)

[三,MongoDB 核心操作](#三,MongoDB 核心操作)

[1, 数据库操作](#1, 数据库操作)

[2, 集合(类似表)操作](#2, 集合(类似表)操作)

[3, 文档(类似行)操作](#3, 文档(类似行)操作)

插入文档

查询文档

更新文档

删除文档


一、MongoDB 基础认知

什么是 MongoDB?

MongoDB 是一个基于文档的分布式数据库,与传统关系型数据库(如 MySQL)的主要区别在于:

不使用 "表(Table)" 和 "行(Row)",而是用 "集合(Collection)" 和 "文档(Document)"

文档以 JSON-like 格式(BSON,二进制 JSON)存储,结构灵活,无需预定义 schema

适合存储非结构化 / 半结构化数据(如日志、用户画像、商品详情等)

二、环境准备

安装 MongoDB

官网下载:Download MongoDB Community Server | MongoDB

安装完成后,默认端口为27017,启动服务:

三,MongoDB 核心操作

1, 数据库操作

javascript 复制代码
// 查看所有数据库
show dbs

// 切换到目标数据库(不存在则自动创建)
use mydb  // 切换到mydb数据库

// 查看当前所在数据库
db

// 删除当前数据库(谨慎操作!)
db.dropDatabase()

2, 集合(类似表)操作

javascript 复制代码
// 创建集合
db.createCollection("users")  // 创建名为users的集合

// 查看当前数据库的所有集合
show collections

// 删除集合
db.users.drop()  // 删除users集合

3, 文档(类似行)操作

插入文档
javascript 复制代码
// 插入单个文档
db.users.insertOne({
    name: "张三",
    age: 25,
    gender: "男"
})

// 插入多个文档
db.users.insertMany([
    {name: "李四", age: 30, gender: "女"},
    {name: "王五", age: 28, gender: "男", hobby: ["打球", "听歌"]}
])
查询文档
javascript 复制代码
// 查询所有文档(格式化输出)
db.users.find().pretty()

// 条件查询:年龄大于26的用户
db.users.find({age: {$gt: 26}}).pretty()

// 条件查询:地址在北京市的用户
db.users.find({"address.city": "北京"}).pretty()

// 只显示name和age字段(_id默认显示,用0隐藏)
db.users.find({}, {name: 1, age: 1, _id: 0}).pretty()

// 按年龄升序排序(1升序,-1降序)
db.users.find().sort({age: 1}).pretty()

// 只看前2条结果
db.users.find().limit(2).pretty()
更新文档
javascript 复制代码
// 更新单个文档:将张三的年龄改为26
db.users.updateOne(
    {name: "张三"},  // 条件
    {$set: {age: 26}}  // 要更新的内容
)

// 更新多个文档:所有年龄小于28的用户添加"isYoung: true"字段
db.users.updateMany(
    {age: {$lt: 28}},
    {$set: {isYoung: true}}
)
删除文档
javascript 复制代码
// 删除单个文档:删除name为李四的文档
db.users.deleteOne({name: "李四"})

// 删除多个文档:删除所有没有hobby字段的文档
db.users.deleteMany({hobby: {$exists: false}})