Mongoose Document.prototype.$op函数
Document .prototype.$op 属性 ****是Mongoose API上的一个属性,用于在Document模型上使用。它允许我们确定Mongoose正在对文档对象进行的正在进行或执行的操作。它可以是null、save、validate或remove。让我们通过一个示例来理解 $op 属性。
语法:
document.$op;
参数: 此属性不接受任何参数。
返回值: 该属性返回一个字符串值。它返回当前正在执行的文档对象上的操作。
设置 Node.js Mongoose 模块:
步骤1: 使用以下命令创建一个 Node.js 应用程序:
npm init
步骤2: 创建NodeJS应用程序后,使用以下命令安装所需模块:
npm install mongoose
项目结构: 项目结构如下所示:
数据库结构: 数据库结构将会如下所示,集合中包含以下文件。
示例1: 在这个示例中,我们使用mongoose建立了一个数据库连接,并在userSchema上定义了模型,有五个列或字段“_id”,“name”,“fixedDeposit”,“interest”和“tenure”。最后,我们删除了这个文档,并使用$op属性来显示正在进行的操作。
文件名:app.js
// Require mongoose module
const mongoose = require("mongoose");
// Set Up the Database connection
mongoose.connect("mongodb://localhost:27017/geeksforgeeks", {
useNewUrlParser: true,
useUnifiedTopology: true,
});
const userSchema = new mongoose.Schema({
name: String,
fixedDeposit: Number,
interest: Number,
tenure: { type: Number, default: 6 }
});
const User = mongoose.model('User', userSchema);
User.findOne({ _id: '639180857bb3df8284caef2b' })
.exec((error, document) => {
if (error) {
console.log(error);
} else {
document.remove();
console.log(document.$op)
}
})
运行程序的步骤: 从项目的根目录执行以下命令来运行该应用:
node app.js
输出:
remove
使用Robo3T GUI工具对数据库进行GUI表示:
示例2: 在这个示例中,我们在document对象上使用validate()方法,并使用$op属性来知道正在进行的操作,并将输出显示在控制台上。
文件名: app.js
// Require mongoose module
const mongoose = require("mongoose");
// Set Up the Database connection
mongoose.connect("mongodb://localhost:27017/geeksforgeeks", {
useNewUrlParser: true,
useUnifiedTopology: true,
});
const userSchema = new mongoose.Schema({
name: String,
fixedDeposit: Number,
interest: Number,
tenure: { type: Number, default: 6 }
});
const User = mongoose.model('User', userSchema);
const newDoc = new User(
{ "name": "Eric", "fixedDeposit": 5000,
"interest": 0.03, "tenure": 15, }
);
newDoc.validate();
console.log(newDoc.$op)
运行程序的步骤: 要运行此应用程序,请在项目的根目录下执行以下命令:
node app.js
输出:
validate
参考:
https://mongoosejs.com/docs/api/document.html#document_Document-$op