在第 4 章中,我们探讨了如何查询 MongoDB 和检索数据。现在,让我们深入研究 MongoDB 中基本的数据操作操作。本章将介绍如何插入文档、更新现有数据、删除文档、使用数组以及使用事务确保数据一致性。
## 5.1 插入文档
MongoDB 允许您使用“insertOne”和“insertMany”方法将文档插入到集合中。
### 演示 1:插入文档
1. 让我们将一个新员工插入到 `employees` 集合中:
db.employees.insertOne({
name: "Eve Brown",
position: "Product Manager",
department: "Product Management"
})
2. `insertOne` 方法将指定文档插入到集合中。
## 5.2 更新文档
MongoDB 提供了更新文档的方法。您可以修改特定字段或替换整个文档。
### 演示 2:更新文档
1. 让我们将 Eve Brown 的职位更新为“高级产品经理”:
db.employees.updateOne(
{ name: "Eve Brown" },
{ $set: { position: "Senior Product Manager" } }
)
2. updateOne 方法更新符合指定条件的文档。
## 5.3 删除文档
要从集合中删除文档,您可以使用“deleteOne”和“deleteMany”方法。
### 演示 3:删除文档
1. 让我们删除 Eve Brown 的员工记录:
db.employees.deleteOne({ name: "Eve Brown" })
2. `deleteOne` 方法删除符合指定条件的文档。
## 5.4 使用数组
MongoDB 允许您在文档中使用数组。您可以添加、删除和更新数组中的元素。
### 演示 4:向数组添加元素
1. 假设您要向员工的技能数组中添加一项新技能。
db.employees.updateOne(
{ name: "Alice Johnson" },
{ $push: { skills: "Data Visualization" } }
)
2. `$push` 运算符将新技能附加到 `skills` 数组中。
## 5.5 事务
MongoDB支持多文档事务,以确保多个操作之间的数据一致性。当需要以原子方式执行多个操作时,事务至关重要。
### 演示 5:使用事务
1. 让我们在一笔交易中执行两项操作:将资金从一个帐户转移到另一个帐户并更新帐户余额。
session = db.getMongo().startSession()
session.startTransaction()
try {
const accounts = session.getDatabase("bank").accounts
// Debit from Alice's account
accounts.updateOne({ owner: "Alice" }, { $inc: { balance: -500 } }, { session })
// Credit to Bob's account
accounts.updateOne({ owner: "Bob" }, { $inc: { balance: 500 } }, { session })
session.commitTransaction()
} catch (error) {
session.abortTransaction()
throw error
} finally {
session.endSession()
}
2. 该交易自动将 500 美元从 Alice 的账户转移到 Bob 的账户。
## 5.6 批量操作
MongoDB 提供了对集合执行批量插入、更新和删除操作的有效方法,从而减少了数据库的往返次数。
### 演示 6:批量插入
1. 让我们通过一次批量操作将多条员工记录插入到“employees”集合中:
const bulkEmployees = db.employees.initializeUnorderedBulkOp()
bulkEmployees.insert({
name: "Frank White",
position: "Frontend Developer",
department: "Engineering"
})
bulkEmployees.insert({
name: "Grace Miller",
position: "UI Designer",
department: "Design"
})
bulkEmployees.execute()
2. `initializeUnorderedBulkOp` 方法创建一个批量操作,在单个请求中插入多个文档。
在本章中,您学习了如何操作 MongoDB 中的数据,包括插入、更新和删除文档。我们还介绍了在文档中使用数组以及使用事务确保数据一致性。有效的数据操作对于维护和发展 MongoDB 数据库至关重要。在接下来的章节中,我们将探索更高级的 MongoDB 功能和应用程序开发的最佳实践。