Mongoose Query.prototype.$where()函数
Mongoose Query API.prototype.$where() method 用于操作Query对象。它允许我们以JavaScript对象或函数的形式将条件传递给mongodb系统。让我们通过一个示例来理解 $where() 方法。
语法:
query.$where( js );
参数: 此方法接受一个单一参数,如下所述:
- js: 用于指定 JavaScript 表达式或函数。
返回值: 此方法返回查询对象。
设置 Node.js Mongoose 模块:
步骤1: 使用以下命令创建一个 Node.js 应用程序:
npm init
步骤: 创建NodeJS应用程序后,使用以下命令安装所需模块:
npm install mongoose
项目结构: 项目的结构将如下所示:
数据库结构:
数据库结构将如下所示,以下数据库存在于MongoDB中。
示例1: 下面的示例展示了Mongoose Connection的基本功能 $where() 方法。我们正在从集合中获取文档,其中 name 等于 “Student1”。
文件名: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, required: true },
age: Number,
rollNumber: { type: Number, required: true },
});
const StudentModel = connectionObject.model('Student', studentSchema);
const query = StudentModel.find();
query.$where("this.name == 'Student1'");
query.then(res => {
console.log(res);
}).catch(err => console.log(err));
运行程序的步骤: 要运行该应用程序,请从项目的根目录执行以下命令:
node app.js
输出:
[
{
_id: new ObjectId("63c2fe2ef9e908eb17f225da"),
name: 'Student1',
age: 25,
rollNumber: 36,
__v: 0
}
]
示例2: 下面的示例说明了Mongoose Connection $where()方法的基本功能。我们正在从集合中获取文档,其中年龄大于等于18岁。
文件名: app.js
Javascript
// 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, required: true },
age: Number,
rollNumber: { type: Number, required: true },
});
const StudentModel = connectionObject.model('Student', studentSchema);
const query = StudentModel.find();
query.$where(function () {
return this.age >= 18;
});
query.exec((error, result) => {
if (error) {
console.log("Error -", error);
} else {
console.log("Result -", result);
}
})
运行程序的步骤: 要运行该应用程序,请从项目的根目录执行以下命令:
node app.js
输出:
Result - [
{
_id: new ObjectId("63c2fe2ef9e908eb17f225da"),
name: 'Student1',
age: 25,
rollNumber: 36,
__v: 0
},
{
_id: new ObjectId("63c2fe2ef9e908eb17f225db"),
name: 'Student2',
age: 18,
rollNumber: 65,
__v: 0
}
]
参考: https://mongoosejs.com/docs/api/query.html#query_Query-$where