Mongoose Query.prototype.or()函数

Mongoose Query.prototype.or()函数

Mongoose 是一个用于MongoDB的对象数据建模(ODM)库。它定义了强类型的模式,包含默认值和模式验证,这些后来被映射到MongoDB文档中。

该方法用于在包含两个或更多表达式的数组上执行逻辑或(OR)操作,并且只选择或检索与数组中至少一个给定表达式匹配的文档。

语法:

Modal.find().where([path]).or([exp1, exp2, ....])

参数:

  • path: 它是一个表示字段名称的字符串,这是一个必需的参数。
  • exp1, exp2 …: 这些是我们在字段中搜索的表达式。

安装mongoose模块:

步骤1: 您可以访问链接以安装mongoose模块。您可以使用以下命令安装此软件包。

npm install mongoose

步骤2: 在安装mongoose模块之后,您可以在命令提示符中使用以下命令检查您的mongoose版本。

npm version mongoose

步骤3: 之后,您只需创建一个文件夹,并添加一个文件,例如index.js。要运行此文件,您需要运行以下命令。

node index.js

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

Mongoose Query.prototype.or()函数

示例1: 我们有一些客户的数据,其中包含他们的姓名、兴趣和订单数量。在这个示例中,我们要找到订单数量为5或7的客户。

// Require mongoose module 
const mongoose = require('mongoose'); 
  
// Set Up the Database connection 
mongoose.connect( 
    'mongodb://localhost:27017/geeksforgeeks', { 
    useNewUrlParser: true, 
    useUnifiedTopology: true
}) 
  
// Defining customerSchema schema 
const customerSchema = new mongoose.Schema({  
    name: String,  
    interest: Array,  
    orderCount: Number  
}) 
  
// Defining customerSchema model 
const Customer = mongoose.model( 
    'Customer', customerSchema); 
  
  
Customer.find().where("orderCount") 
    .or([{orderCount: 5}, {orderCount: 7}]) 
    .then((res) => { 
        console.log(res) 
    });

运行应用程序的步骤:

步骤1: 在执行功能之前,数据库中的示例数据如下所示,您可以使用任何GUI工具或终端来查看数据库,就像我们使用MongoDB Compass GUI工具一样:

Mongoose Query.prototype.or()函数

运行应用程序的步骤: 使用以下命令运行index.js文件:

node index.js

Mongoose Query.prototype.or()函数

示例2: 在之前的示例中,我们找到了一个名为orderCount的数字,但在这个示例中,我们要找到一个名为interest的数组。我们要找到对拳击或柔道感兴趣的顾客。

// Require mongoose module 
const mongoose = require('mongoose'); 
  
// Set Up the Database connection 
mongoose.connect( 
    'mongodb://localhost:27017/geeksforgeeks', { 
    useNewUrlParser: true, 
    useUnifiedTopology: true
}) 
  
// Defining customerSchema schema 
const customerSchema = new mongoose.Schema({  
    name: String,  
    interest: Array,  
    orderCount: Number  
}) 
  
// Defining customerSchema model 
const Customer = mongoose.model( 
    'Customer', customerSchema); 
  
Customer.find().where("orderCount") 
    .or([{interest: "judo"}, {interest: "boxing"}]) 
    .then((res) => { 
        console.log(res) 
    });

运行该应用的步骤: 使用以下命令运行index.js文件:

node index.js

Mongoose Query.prototype.or()函数

参考: https://mongoosejs.com/docs/api/query.html#query_Query-or

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程