API-интерфейс прототипа запроса Mongoose.where()
Mongoose — это средство моделирования и обработки объектов MongoDB для среды node.js. Метод Mongoose Query where() используется для фильтрации документов из коллекции с использованием системы запросов MongoDB. Его можно использовать по-разному, например, связывая в цепочку или передавая условия запроса. Давайте лучше разберемся в этом на некоторых примерах.
Синтаксис:
Query.prototype.where()
Параметры: принимает 2 параметра, которые описаны ниже:
- путь: имеет тип String или Object.
- val: Это может быть любой тип.
Тип возвращаемого значения: возвращает объект запроса.
Создание приложения node и установка Mongoose:
Шаг 1: Создайте приложение узла, используя следующую команду:
mkdir folder_name cd folder_name npm init -y touch main.js
Шаг 2: После создания приложения ReactJS установите необходимый модуль с помощью следующей команды:
npm install mongoose
Структура проекта: Это будет выглядеть следующим образом.
Графическое представление базы данных с использованием MongoDB Compass: в настоящее время в коллекции нет данных.
Пример 1. В этом примере мы будем использовать метод Query where() для фильтрации документов с использованием метода цепочки, где мы будем объединять разные запросы вместе.
Имя файла: main.js
Javascript
const mongoose = require( "mongoose" ) // Database connection dbName: "event_db" , useNewUrlParser: true , useUnifiedTopology: true }, err => err ? console.log(err) : console.log( "Connected to database" )); const personSchema = new mongoose.Schema({ name: { type: String, }, age: { type: Number, } }); const personsArray = [ { name: "John" , age: 22 }, { name: "Dave" , age: 17 }, { name: "Earl" , age: 12 } ] const Person = mongoose.model( "Person" , personSchema); (async () => { await Person.insertMany(personsArray); const persons = await Person.find().where( "age" ).gte(18); console.log(persons); })() |
Шаг для запуска приложения: Запустите приложение, используя следующую команду из корневого каталога проекта:
node main.js
Вывод: Мы видим, что значение в результате остается неизменным.
Графическое представление базы данных с использованием MongoDB Compass:
Пример 2. В этом примере мы будем использовать метод Query API where() для фильтрации документов путем передачи условий запроса в качестве аргумента методу where().
Имя файла: main.js
Javascript
const mongoose = require( "mongoose" ) // Database connection dbName: "event_db" , useNewUrlParser: true , useUnifiedTopology: true }, err => err ? console.log(err) : console.log( "Connected to database" )); const personSchema = new mongoose.Schema({ name: { type: String, }, age: { type: Number, } }); const personsArray = [ { name: "John" , age: 22 }, { name: "Dave" , age: 17 }, { name: "Earl" , age: 12 } ] const Person = mongoose.model( "Person" , personSchema); (async () => { await Person.insertMany(personsArray); const persons = await Person.find().where ({ age: { $lte: 18 } }) console.log(persons); })() |
Шаг для запуска приложения: Запустите приложение, используя следующую команду из корневого каталога проекта:
node main.js
Вывод: Мы видим, что значение в результате остается неизменным.
Графическое представление базы данных с использованием MongoDB Compass:
Ссылка: https://mongoosejs.com/docs/api/query.html#query_Query-где