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
项目结构: 项目结构将如下所示:
示例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工具一样:
运行应用程序的步骤: 使用以下命令运行index.js文件:
node index.js
示例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
参考: https://mongoosejs.com/docs/api/query.html#query_Query-or