四时宝库

程序员的知识宝库

第 5 章:使用 MongoDB 进行数据操作

在第 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 功能和应用程序开发的最佳实践。

发表评论:

控制面板
您好,欢迎到访网站!
  查看权限
网站分类
最新留言
    友情链接