Mongoose Document Model.prototype.$where()函数

Mongoose Document Model.prototype.$where()函数

Mongoose Document API的Model.prototype.$where()方法是在Document模型上使用的。它允许将where条件放在MongoDB查询中。使用这个方法,我们可以形成具有JavaScript表达式的MongoDB查询。我们也可以直接在MongoDB模型上使用这个方法。让我们通过一个例子来理解$where()方法。

语法:

Model.$where(<argument>);

参数: 该方法接受一个单一的参数,如下所讨论:

  • argument: 它用于使用JavaScript表达式或字符串或函数来指定条件。

返回值: 该方法返回一个查询对象,我们可以在该对象上调用回调函数。

设置Node.js应用:

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

npm init

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

npm install mongoose

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

Mongoose Document Model.prototype.$where()函数

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

Mongoose Document Model.prototype.$where()函数

示例1: 在这个示例中,我们展示了 $where() 方法的功能。我们直接在 Customer 模型上访问 $where() 方法,并获取name字段值为 Aditya 的文档。

文件名: 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 Customer = connectionObject.model(
    "Customer",
    new mongoose.Schema({
        name: String,
        address: String,
        orderNumber: Number,
    })
);
 
Customer.$where("this.name === 'Aditya'").
    then(res => {
        console.log(res);
    }).catch(err => {
        console.log(err);
    });

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

node app.js

输出:

[
    {
        _id: new ObjectId("639ede899fdf57759087a653"),
        name: 'Aditya',
        address: 'Mumbai',
        orderNumber: 20,
        __v: 0
    }
]

示例2: 在此示例中,我们展示了 $where() 方法的功能。我们正在访问结果集上的 $where() 表单,并提取那些 orderNumber 字段值为 9 的文档。

文件名: 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 Customer = connectionObject.model(
    "Customer",
    new mongoose.Schema({
        name: String,
        address: String,
        orderNumber: Number,
    })
);
 
Customer.find().$where(("this.orderNumber === 9")).
    exec((error, result) => {
        if (error) {
            console.log(error);
        } else {
            console.log(result);
        }
    });

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

node app.js

输出:

[
    {
        _id: new ObjectId("639ede899fdf57759087a655"),
        name: 'Chintu',
        address: 'IND',
        orderNumber: 9,
        __v: 0
    },
    {
        _id: new ObjectId("63c13b76876922405349f708"),
        name: 'Mivaan',
        address: 'IND',
        orderNumber: 9,
        __v: 0
    }
]

参考: https://mongoosejs.com/docs/api/model.html#model_Model-$where

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程