目录
[一、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}})