Mongoose Query API.prototype.writeConcern()方法
Mongoose API 中的 Mongoose Query API.prototype.writeConcern() 方法用于操作查询对象。通过该方法,我们可以设置将事件写入数据库的选项。使用此方法,我们可以设置各种参数来配置写操作。让我们通过一个示例了解 writeConcern() 方法。
writeConcern 操作适用于以下方法:
- deleteOne()
- deleteMany()
- findOneAndDelete()
- findOneAndReplace()
- findOneAndUpdate()
- remove()
- update()
- updateOne()
- updateMany()
语法:
Model.deleteOne(...).writeConcern( <object> );
参数: 此方法接受一个参数,如下所述:
- object(对象): 它用于以对象的形式指定各种属性及其值。
返回值: 此方法返回查询对象。
设置 Node.js Mongoose 模块:
步骤 1: 使用以下命令创建一个 Node.js 应用程序:
npm init
步骤2: 创建 NodeJS 应用程序后,使用以下命令安装所需的模块:
npm install mongoose
项目结构: 项目结构将如下所示:
数据库结构: 数据库结构将如下所示,以下文件存在于集合中。
示例1:
下面的示例演示了使用Mongoose连接writeConcern()方法的基本功能,使用异步函数。
文件名: app.js
// Require mongoose module
const mongoose = require("mongoose");
// Set Up the Database connection
const URI = "mongodb://localhost:27017/geeksforgeeks"
const connectionObject = mongoose.createConnection(URI, {
useNewUrlParser: true,
useUnifiedTopology: true,
});
const studentSchema = new mongoose.Schema({
name: { type: String },
age: { type: Number },
rollNumber: { type: Number },
});
const Student = connectionObject.model('Student', studentSchema);
(async () => {
const query = await Student.updateOne({ name: 'Student4' }, { age: 42 }).
writeConcern({ w: 'majority' });
console.log(query);
})
();
运行程序的步骤: 从项目的根目录执行以下命令来运行该应用:
node app.js
输出:
{
acknowledged: true,
modifiedCount: 1,
upsertedId: null,
upsertedCount: 0,
matchedCount: 1
}
Robo3T GUI工具使用GUI表示数据库:
示例2: 下面的示例演示了Mongoose Connection writeConcern() 方法的基本功能,使用 then 块。
文件名: app.js
// Require mongoose module
const mongoose = require("mongoose");
// Set Up the Database connection
const URI = "mongodb://localhost:27017/geeksforgeeks"
const connectionObject = mongoose.createConnection(URI, {
useNewUrlParser: true,
useUnifiedTopology: true,
});
const studentSchema = new mongoose.Schema({
name: { type: String },
age: { type: Number },
rollNumber: { type: Number },
});
const Student = connectionObject.model('Student', studentSchema);
Student.deleteOne({ name: 'Student4' }).writeConcern({ w: 'majority', j: true }).
then(queryObject => {
console.log(queryObject);
});
运行程序的步骤: 要运行该应用程序,请从项目的根目录执行以下命令:
node app.js
输出:
{ acknowledged: true, deletedCount: 1 }
参考: https://mongoosejs.com/docs/api/query.html#query_Query-writeConcern