MongoDB 术语、安装及依赖
本章我们讨论 MongoDB 的术语、安装及 Rust 操作 MongoDB 的依赖。MongoDB 插入数据
本章我们将讨论 MongoDB 插入数据的方法。MongoDB 查询数据
本章将讨论 MongoDB 查询全部数据、查询单条数据以及分页显示的方法。MongoDB 修改数据
本章将讨论 MongoDB 修改已有数据、替换已有数据、修改或插入新数据的方法。MongoDB 删除记录
本章将讨论 Mongo DB 删除记录操作MongoDB 过滤
本章将讨论 MongoDB 中最常用的功能:过滤器的定义。MongoDB 聚合操作
本章将讨论 MongoDB 的两种聚合操作:单一聚合和聚合管道。
MongoDB 修改数据
- 5323
- 2025-06-06 16:34:13
修改已有数据
pub async fn update(
State(state): State<ArcAppState>,
Json(frm): Json<form::UpdateNote>,
) -> Result<Json<u64>> {
let n = state
.note_collect()
.update_one(
doc! {"_id": &frm.id},
doc! {"$set": {"title": &frm.title, "content": &frm.content}},
)
.await?;
Ok(Json(n.modified_count))
}
通过 update_one() 方法可以对数据进行修改,它接收两个参数:
- 修改条件,只有满足该条件数据才会进行修改。我们使用的是指定主键
- 要修改的数据
- 通过
$set运算符,指定要修改哪些字段 - 提供具体在字段和值
- 通过
update_one()用于修改单条数据- 如果要修改多条数据,使用
update_many()
测试:
## 修改单条笔记
PUT http://127.0.0.1:9527
Content-Type: application/json
{
"id":"d100i1kdrfaihab7dmjg",
"title":"note3 <UPDATED>",
"content":"笔记 <UPDATED>"
}
HTTP/1.1 200 OK
content-type: application/json
content-length: 1
connection: close
date: Fri, 06 Jun 2025 06:56:57 GMT
1
修改或插入数据
给 update_one() 或 update_many() 设置 upsert(true),可以在记录不存在时进行插入操作:
测试:
## 修改或插入单条笔记【修改】
PATCH http://127.0.0.1:9527
Content-Type: application/json
{
"id":"d100i1kdrfaihab7dmjg",
"title":"note3 <UPDATED_1>",
"content":"笔记 <UPDATED_1>"
}
## 修改或插入单条笔记【插入】
PATCH http://127.0.0.1:9527
Content-Type: application/json
{
"title":"note4",
"content":"笔记4"
}
替换数据
replace_one() 用于替换指定的记录。注意区分 replace 和 update:
replace用于将记录完整地替换,只保留主键不变。它是【整体修改】update用于更新指定的字符。它是【部分修改】
测试:
## 替换笔记
PUT http://127.0.0.1:9527/d100i1kdrfaihab7dmjg
Content-Type: application/json
{
"title":"note3 <REPLACED>",
"content":"笔记 <REPLACED>"
}
