Mongoose Query()函数
Mongoose API Query()方法 的方法 Mongoose API 的方法 用作构造函数来创建 Query 的引用。它允许我们创建查询对象并构建查询表达式。我们不需要创建 Query 类的对象来与 MongoDB 集合交互。我们可以直接在自定义定义的 Model 上调用任何模型方法,它将间接返回 Query 的实例。让我们通过一个示例了解 Query() 构造函数。
语法:
new mongoose.Query( options, model, conditions, collection );
参数: 该方法接受以下四个参数:
- options: 用于指定构造函数的各种属性。
- model: 用于指定模型名称。
- conditions: 用于指定过滤条件。
- collection: 用于指定数据库中集合的名称。
返回值: 该构造函数返回一个 Query 类的引用。
设置 Node.js Mongoose 模块:
步骤1: 使用以下命令创建一个 Node.js 应用程序:
npm init
步骤2: 创建NodeJS应用程序后,使用以下命令安装所需的模块:
npm install mongoose
项目结构:
项目的结构将如下所示:
数据库结构: 数据库结构将如下所示,以下数据库存在于MongoDB中。
示例1: 下面的示例演示了Mongoose Connection Query()构造函数的基本功能。我们可以看到,查询对象是Query类的实例,它在使用mongoose模型的find()方法时间接实例化。
文件名:app.js
// Require mongoose module
const mongoose = require("mongoose");
// Set Up the Database connection
let URI = "mongodb://localhost:27017/geeksforgeeks";
const connectionObject = mongoose.createConnection(URI, {
useNewUrlParser: true,
useUnifiedTopology: true,
});
let studentSchema = new mongoose.Schema({
name: { type: String, required: true },
age: Number,
rollNumber: { type: Number, required: true },
});
let StudentModel =
connectionObject.model('Student', studentSchema);
let query = StudentModel.find();
console.log(query instanceof mongoose.Query);
执行程序的步骤: 要运行该应用程序,请从项目的根目录执行以下命令:
node app.js
输出:
true
示例2:
下面的示例演示了Mongoose Connection Query()构造函数的基本功能。最后,我们使用一个查询对象,该对象是Query构造函数的实例,以从集合中获取文档。
文件名: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 studentSchema = new mongoose.Schema({
name: { type: String, required: true },
age: Number,
rollNumber: { type: Number, required: true },
});
let StudentModel =
connectionObject.model('Student', studentSchema);
let query = StudentModel.find();
query.where('name', "Student2");
query.exec((error, result) => {
if (error) {
console.log("Error -", error);
} else {
console.log("Result -", result);
}
});
运行程序的步骤:
要运行该应用程序,请从项目的根目录执行以下命令:
node app.js
输出:
Result - [
{
_id: new ObjectId("63c2fe2ef9e908eb17f225db"),
name: 'Student2',
age: 18,
rollNumber: 65,
__v: 0
}
]
参考: https://mongoosejs.com/docs/api/query.html#query_Query