API-интерфейс прототипа запроса Mongoose.where()

Опубликовано: 14 Февраля, 2023

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-где