更新数据

本文涉及的产品
云数据库 MongoDB,独享型 2核8GB
推荐场景:
构建全方位客户视图
简介: 更新数据

我们也可以对数据库的数据进行修改,以下实例将 name 为 "Alice" 的 数据:

更新一条数据

const { MongoClient } = require('mongodb');  async function main() {    // MongoDB 连接 URI    const uri = "mongodb://localhost:27017"; // 请根据你的 MongoDB 服务器地址进行修改      // 创建一个新的 MongoClient    const client = new MongoClient(uri, { useNewUrlParser: true, useUnifiedTopology: true });       try {        // 连接到 MongoDB 服务器        await client.connect();           console.log("成功连接到服务器");           // 指定数据库        const database = client.db('runoob');           // 使用 createCollection 方法创建集合        const collectionName = 'exampleCollection';         await database.createCollection(collectionName);         console.log(`集合 ${collectionName} 创建成功`);           // 获取集合        const collection = database.collection(collectionName);           // 创建多个新文档        const docs = [            { name: "Alice", age: 25, address: "Wonderland" },             { name: "Bob", age: 30, address: "Builderland" },             { name: "Charlie", age: 35, address: "Chocolate Factory" }        ];           // 插入多个文档到集合        const result = await collection.insertMany(docs);           console.log(`${result.insertedCount} 个新文档已创建,ID 为:`);         Object.keys(result.insertedIds).forEach((id, index) => {            console.log(`文档 ${index + 1}: ${id}`);         });           // 指定条件,根据 name 参数更新数据        const filter = { name: "Alice" }; // 搜索条件        const updateDoc = {            $set: {                age: 28,                 address: "New Wonderland"            },         };           const updateResult = await collection.updateOne(filter, updateDoc);           console.log(`${updateResult.matchedCount} 个文档匹配筛选条件`);         console.log(`${updateResult.modifiedCount} 个文档已更新`);           // 查询更新后的文档        const updatedDocument = await collection.findOne(filter);         console.log("更新后的文档:");         console.log(updatedDocument);     } finally {        // 确保在完成后关闭连接        await client.close();     }} main().catch(console.error);

执行成功后,输出结果如下:

成功连接到服务器

集合 exampleCollection 创建成功

3 个新文档已创建,ID 为:

文档 1: 0

文档 2: 1

文档 3: 2

1 个文档匹配筛选条件

1 个文档已更新

更新后的文档:

{

 _id: new ObjectId('6678e1d1f9503dc2e0e2a20b'),

 name: 'Alice',

 age: 28,

 address: 'New Wonderland'

}

如果要更新所有符合条的文档数据可以使用 updateMany()

更新多条数据

const { MongoClient } = require('mongodb');  async function main() {    // MongoDB 连接 URI    const uri = "mongodb://localhost:27017"; // 请根据你的 MongoDB 服务器地址进行修改      // 创建一个新的 MongoClient    const client = new MongoClient(uri, { useNewUrlParser: true, useUnifiedTopology: true });       try {        // 连接到 MongoDB 服务器        await client.connect();           console.log("成功连接到服务器");           // 指定数据库        const database = client.db('runoob');           // 使用 createCollection 方法创建集合        const collectionName = 'exampleCollection';         await database.createCollection(collectionName);         console.log(`集合 ${collectionName} 创建成功`);           // 获取集合        const collection = database.collection(collectionName);           // 创建多个新文档        const docs = [            { name: "Alice", age: 25, address: "Wonderland" },             { name: "Bob", age: 30, address: "Builderland" },             { name: "Alice", age: 28, address: "Old Wonderland" }        ];           // 插入多个文档到集合        const result = await collection.insertMany(docs);           console.log(`${result.insertedCount} 个新文档已创建,ID 为:`);         Object.keys(result.insertedIds).forEach((id, index) => {            console.log(`文档 ${index + 1}: ${id}`);         });           // 指定条件,根据 name 参数更新多个文档        const filter = { name: "Alice" }; // 搜索条件        const updateDoc = {            $set: {                address: "Updated Wonderland"            },         };           const updateResult = await collection.updateMany(filter, updateDoc);           console.log(`${updateResult.matchedCount} 个文档匹配筛选条件`);         console.log(`${updateResult.modifiedCount} 个文档已更新`);           // 查询更新后的文档        const updatedDocuments = await collection.find(filter).toArray();         console.log("更新后的文档:");         console.log(updatedDocuments);     } finally {        // 确保在完成后关闭连接        await client.close();     }} main().catch(console.error);

相关实践学习
MongoDB数据库入门
MongoDB数据库入门实验。
快速掌握 MongoDB 数据库
本课程主要讲解MongoDB数据库的基本知识,包括MongoDB数据库的安装、配置、服务的启动、数据的CRUD操作函数使用、MongoDB索引的使用(唯一索引、地理索引、过期索引、全文索引等)、MapReduce操作实现、用户管理、Java对MongoDB的操作支持(基于2.x驱动与3.x驱动的完全讲解)。 通过学习此课程,读者将具备MongoDB数据库的开发能力,并且能够使用MongoDB进行项目开发。   相关的阿里云产品:云数据库 MongoDB版 云数据库MongoDB版支持ReplicaSet和Sharding两种部署架构,具备安全审计,时间点备份等多项企业能力。在互联网、物联网、游戏、金融等领域被广泛采用。 云数据库MongoDB版(ApsaraDB for MongoDB)完全兼容MongoDB协议,基于飞天分布式系统和高可靠存储引擎,提供多节点高可用架构、弹性扩容、容灾、备份回滚、性能优化等解决方案。 产品详情: https://www.aliyun.com/product/mongodb
目录
相关文章
|
3月前
|
机器学习/深度学习 关系型数据库 MySQL
更新数据
更新数据
33 1
|
4月前
|
SQL 人工智能 关系型数据库
|
4月前
|
安全 Java 数据库连接
jdbc实现批量给多个表中更新数据(解析Excel表数据插入到数据库中)
jdbc实现批量给多个表中更新数据(解析Excel表数据插入到数据库中)
update 批量更新某条数据时取最新、最大的一笔更新
update 批量更新某条数据时取最新、最大的一笔更新
81 0
|
4月前
|
关系型数据库 MySQL 数据库
MySQL数据库-多表关联更新数据
MySQL数据库-多表关联更新数据
52 1
|
SQL
DML-数据更新
DML-数据更新
52 0
|
SQL 数据库
DML 添加、修改、删除数据
DML英文全称是Data Manipulation Language(数据操作语言),用来对数据库中表的数据记录进行增、删、改操作。
211 0
|
数据库 数据安全/隐私保护
批量插入【对新数据进行插入操作,已存在的记录进行更新操作】
批量插入【对新数据进行插入操作,已存在的记录进行更新操作】
150 0
批量插入【对新数据进行插入操作,已存在的记录进行更新操作】
|
SQL 安全 数据库
如何向表中插入数据以及如何更新、删除表中的数据
1. 插入 INSERT 用来将行插入到数据库表中。插入有几种方式: 插入完整的行。 插入行的一部分。 插入某些查询的结果。 INSERT 语法要求指定表名和插入到新表中的值。例如,我们将一个新顾客插入到 customers 表中。 插入前: INSERT INTO Customers VALUES('1000000006', 'Toy Land', '123 Any Street', 'New York', 'NY', '11111', 'USA', 'Jordan', 'Jordan@gmail.com'); 运行结果如下: 插入到新表中的值由 VALUES 子
145 0
|
存储 关系型数据库 MySQL
mysql删除数据,更新数据,以及表的相关操作
mysql删除数据,更新数据,以及表的相关操作
268 1