Mongoose Document Model.updateMany()函数
Mongoose文档模型的updateMany() API
Mongoose文档API的Model.updateMany()方法用于文档模型。它允许一次更新多个文档。使用此方法,我们可以在一次执行中更新与筛选条件匹配的多个文档。让我们通过一个例子来了解updateMany()方法。
语法:
Model.updateMany(filter, update, options, callback);
参数: 该方法接受以下四个参数进行讨论:
- filter: 用于指定筛选条件,以过滤或识别需要更新的文档。
- update: 用于为我们想要更新的字段设置最新的值。
- options: 用于指定各种属性。
- callback: 用于指定回调函数。
返回值: 它返回查询对象,我们可以在该对象上调用回调函数并处理Promise。
设置Node.js应用程序:
步骤1: 使用以下命令创建一个Node.js应用程序:
npm init
步骤2: 创建NodeJS应用程序后,使用以下命令安装所需的模块
npm install mongoose
项目结构: 项目结构将如下所示:
数据库结构: 数据库结构将会如下所示,以下文档存在于集合中。
示例1: 在这个示例中,我们演示了 updatemany() 方法的功能。我们使用 address 字段过滤文档,并更新订单编号 字段。最后,我们使用then和catch块处理返回的promise。
文件名: app.js
// Require mongoose module
const mongoose = require("mongoose");
// Set Up the Database connection
const URI = "mongodb://localhost:27017/geeksforgeeks";
let connectionObject = mongoose.createConnection(URI, {
useNewUrlParser: true,
useUnifiedTopology: true,
});
let Customer = connectionObject.model(
"Customer",
new mongoose.Schema({
name: String,
address: String,
orderNumber: Number,
})
);
Customer.updateMany({ address: "Indore" }, { orderNumber: 9 }).
then(result => {
console.log(result);
}).catch(error => {
console.log(error);
});
运行程序的步骤: 从项目的根目录执行以下命令来运行应用程序
node app.js
输出:
{
acknowledged: true,
modifiedCount: 2,
upsertedId: null,
upsertedCount: 0,
matchedCount: 2
}
使用 Robo3T GUI 工具的数据库的 GUI 表示:
示例2: 在这个例子中,我们演示了 updatemany() 方法的功能。我们使用 orderNumber 字段对文档进行筛选,并更新 address 字段。最后,我们通过将回调函数作为第三个参数提供给 updateMany() 方法来处理返回的承诺。
文件名: app.js
// Require mongoose module
const mongoose = require("mongoose");
// Set Up the Database connection
const URI = "mongodb://localhost:27017/geeksforgeeks";
let connectionObject = mongoose.createConnection(URI, {
useNewUrlParser: true,
useUnifiedTopology: true,
});
let Customer = connectionObject.model(
"Customer",
new mongoose.Schema({
name: String,
address: String,
orderNumber: Number,
})
);
Customer.updateMany({ orderNumber: 9 }, { address: "IND" }
, (err, res) => {
if (err) {
console.log(err);
} else {
console.log(res);
}
});
运行程序的步骤: 从项目的根目录执行以下命令来运行应用程序:
node app.js
输出结果:
{
acknowledged: true,
modifiedCount: 0,
upsertedId: null,
upsertedCount: 0,
matchedCount: 2
}
使用Robo3T GUI工具的数据库的GUI表示:
参考: https://mongoosejs.com/docs/api/model.html#model_Model-updateMany