首页 / MongoDB 入门教程 / 5 分钟上手:第一个 CRUD 全流程

MongoDB 入门教程

5 分钟上手:第一个 CRUD 全流程

本教程共 50 篇 · 第 6 篇 · 更新于 2026-07-30 · 约 7 分钟阅读

MongoDBMongoDB 入门教程CRUDinsertOnefindupdateOne

6. 5 分钟上手:第一个 CRUD 全流程

本节目标:用统一的 users 集合,照着敲一遍增删改查,建立对 MongoDB 基本操作的直觉。

6.1 先准备好示例数据

本教程统一用 users 集合做演示,结构如下:

  • users:{ _id, name, email, age, city, tags: [], registered_at }

先插入两条数据。注意这里用整数 _id 是为了示例清晰,真实项目多让 MongoDB 自动生成 ObjectId(见数据类型章节)。

// 建示例数据:两条用户
db.users.insertMany([
  {
    _id: 1,
    name: "张伟",
    email: "zhangwei@example.com",
    age: 28,
    city: "北京",
    tags: ["vip", "gamer"],
    registered_at: ISODate("2024-01-15")
  },
  {
    _id: 2,
    name: "李娜",
    email: "lina@example.com",
    age: 34,
    city: "上海",
    tags: ["new"],
    registered_at: ISODate("2024-03-22")
  }
])
test> db.users.insertMany([ ... ])
{
  acknowledged: true,
  insertedIds: [ 1, 2 ]
}

6.2 Create:插入

上面已经用过 insertMany。单条插入用 insertOne

// 新增一条用户
db.users.insertOne({
  _id: 3,
  name: "王芳",
  email: "wangfang@example.com",
  age: 22,
  city: "广州",
  tags: ["new", "vip"],
  registered_at: ISODate("2024-05-01")
})

6.3 Read:查询

find() 是最常用的查询。不传条件就是查全部:

// 查全部,pretty() 让输出更好看
db.users.find().pretty()

按条件查,比如找北京的:

// 查 city 等于 "北京" 的用户
db.users.find({ city: "北京" }).pretty()
Tip

pretty() 不是必须,但终端里加上它,内嵌文档会缩进显示,看着舒服很多。

6.4 Update:更新

updateOne 改第一条匹配的记录。用 $set 指定要改的字段:

// 把 _id=1 的用户年龄改成 29
db.users.updateOne(
  { _id: 1 },
  { $set: { age: 29 } }
)
test> db.users.updateOne({ _id: 1 }, { $set: { age: 29 } })
{ acknowledged: true, matchedCount: 1, modifiedCount: 1 }

6.5 Delete:删除

deleteOne 删第一条匹配的记录:

// 删掉 _id=3 的用户
db.users.deleteOne({ _id: 3 })
test> db.users.deleteOne({ _id: 3 })
{ acknowledged: true, deletedCount: 1 }

6.6 跑完一遍之后

到这里,增删改查四个动作你都亲手试过了。后续章节会把每个动作拆开讲细:插入的返回值、查询的运算符、更新的各种修饰符。

Warning

示例里用了固定 _id,重复插入相同 _id 会报重复键错误(E11000)。后面批量插入章节会专门讲这件事。