Mongoose Query.prototype.toConstructor()方法

Mongoose Query.prototype.toConstructor()方法

Mongoose Query API.prototype.toConstructor() 方法 是用于查询对象的 Mongoose API 中的方法。它允许我们自定义查询构造函数。使用这个方法,我们可以创建具有所有配置属性和选项的可重复使用的构造函数。让我们使用一个示例来理解 toConstructor() 方法。

语法:

query.toConstrutor();

参数: 此方法不接受任何参数。

返回值: 此方法返回Query的子类。通过其引用,我们可以访问回调函数。

设置Node.js的Mongoose模块:

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

npm init

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

npm install mongoose

项目结构:

项目的结构看起来会像这样:

Mongoose Query.prototype.toConstructor()方法

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

Mongoose Query.prototype.toConstructor()方法

示例1: 下面的示例演示了使用异步函数的mongoose查询toConstructor()方法的基本功能。

文件名: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 = Student.find({ name: 'Student1' }); 
    const Student1 = query.toConstructor(); 
    Student1().exec((error, result) => { 
        if (error) { 
            console.log('Error -', error); 
        } else { 
            console.log('Result -', result); 
        } 
    }) 
})();

运行程序的步骤:

要运行该应用程序,请从项目的根目录执行以下命令:

node app.js

输出:

Result - [
  {
    _id: new ObjectId("63a40a1065e8951038a391b1"),
    name: 'Student1',
    age: 30,
    rollNumber: 9,
    __v: 0
  }
]

示例2: 下面的示例演示了Mongoose查询toConstructor()方法的基本功能,使用回调函数。

文件名: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 
); 
  
const query = Student.findByIdAndUpdate( 
    { id: '63a4a9a207370cdcd1961b2c' }, 
    { name: 'Student2' } 
); 
  
const Student2 = query.toConstructor(); 
Student2().then(result => { 
    console.log('Result -', result); 
}).catch(error => { console.log(error) });

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

node app.js

输出:

使用Robo3T GUI工具对数据库进行GUI表示:

Mongoose Query.prototype.toConstructor()方法

参考文献: https://mongoosejs.com/docs/api/query.html#query_Query-toConstructor

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程