Mongoose Document.prototype.$isDeleted()函数

Mongoose Document.prototype.$isDeleted()函数

Mongoose API中的Document.prototype.$isDeleted()方法用于Document模型。 它允许我们识别文档是否被移除。 使用isDeleted()方法,我们可以重写mongoose对文档是否被删除的判断。 让我们使用一个示例来理解isDeleted()方法。

语法:

document.$isDeleted( value );

参数: 此方法接受一个参数,如下所述:

  • value: 用于指定布尔值。此值将覆盖Mongoose对于删除任何文档的判断。

返回值: 此方法返回一个布尔值。如果文档被删除,则返回true,否则返回false。

设置Node.js的Mongoose模块:

步骤1: 使用以下命令创建一个Node.js应用程序:

npm init

步骤2: 创建NodeJS应用程序后,使用以下命令安装所需模块:

npm install mongoose

项目结构: 项目的结构将如下所示:

Mongoose Document.prototype.$isDeleted()函数

数据库结构: 数据库的结构将如下所示,以下文档存在于集合中。

Mongoose Document.prototype.$isDeleted()函数

示例1: 在这个示例中,我们使用mongoose建立了一个数据库连接,并在userSchema上定义了一个模型,该模型具有五个列或字段“_id”、“name”、“fixedDeposit”、“interest”和“tenure”。最后,我们从集合中删除了一个文档,然后在同一个文档对象上访问isDeleted()方法,并且我们得到了预期的输出true。

// 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: Number 
}); 
  
const User = mongoose.model('User', userSchema); 
  
User.findOne({ name: 'Eric' }).then(document => { 
    console.log(document) 
    document.remove().then(doc => { 
        console.log(doc.$isDeleted()); 
    }); 
});

运行程序的步骤: 从项目的根目录执行以下命令来运行应用程序:

node app.js

输出:

{
  _id: new ObjectId("6390f4b9a4ca3e6bc9d41d61"),
  name: 'Eric',
  fixedDeposit: 10000,
  interest: 0.01,
  tenure: 12,
  __v: 0
}
true

在这个示例中,我们使用mongoose建立了一个数据库连接,并在userSchema上定义了一个模型,其中包括五个列或字段:“_id”,“name”,“fixedDeposit”,“interest”和“tenure”。最后,我们从集合中删除了一个文档,并通过将false值传递给isDeleted()方法,明确地覆盖了mongoose认为该文档已被删除。最后,我们在同一个文档对象上访问isDeleted()方法,并获得了预期的输出false。尽管文档已经被删除,我们可以在数据库中验证相同的情况。 文件名:app.js Javascript

// 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: Number 
}); 
  
const User = mongoose.model('User', userSchema); 
  
const isDeletedExample2 = async () => { 
    const document = await User.findOne({ name: 'Chintu' }); 
    await document.remove(); 
    document.isDeleted(false); 
    console.log(document.isDeleted()); 
} 
isDeletedExample2();

运行程序的步骤: 要运行此应用程序,请在项目的根目录下执行以下命令:

node app.js

输出:

false

使用Robo3T GUI工具的数据库的GUI表示:

Mongoose Document.prototype.$isDeleted()函数

参考资料: https://mongoosejs.com/docs/api/document.html#document_Document-$isDeleted

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程