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

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

Mongoose — это средство моделирования и обработки объектов MongoDB для среды node.js. Метод преобразования запроса мангуста () используется для преобразования документа, возвращенного из ответа на запрос мангуста. Преобразование может быть полезно, когда нам нужно добавить новое свойство к загруженным документам. Давайте лучше разберемся в этом на некоторых примерах.

Синтаксис :

Query.prototype.transform()

Параметры: Он принимает один параметр: который описан ниже:

  • fn: это работающая функция, которая преобразует результат запроса

Тип возвращаемого значения: возвращает объект запроса.

Создание приложения node и установка Mongoose:

Шаг 1: Создайте приложение узла, используя следующую команду:

mkdir folder_name
cd folder_name
npm init -y
touch main.js

Шаг 2: После создания приложения ReactJS установите необходимый модуль с помощью следующей команды:

npm install mongoose

Структура проекта: Это будет выглядеть следующим образом.

Графическое представление базы данных с использованием MongoDB Compass: в настоящее время в коллекции нет данных.

Пример 1. В этом примере мы будем использовать метод transform() Query API, чтобы установить текущую дату для возвращаемого документа.

Имя файла: 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
    }
]
  
const Person = mongoose.model("Person", personSchema);
  
(async () => {
    await Person.insertMany(personsArray);
  
    const persons = await Person.find().transform(per => {
        return {
            ...per,
            currentDate: new Date()
        }
    })
  
    console.log(persons);
})()

Шаг для запуска приложения: Запустите приложение, используя следующую команду из корневого каталога проекта:

node main.js

Вывод: Мы видим, что значение в результате остается неизменным.

Графическое представление базы данных с использованием MongoDB Compass:

Пример 2. В этом примере мы будем использовать метод transform() Query API, чтобы установить количество возвращаемых документов.

Имя файла: 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
    }
]
  
const Person = mongoose.model("Person", personSchema);
  
(async () => {
    await Person.insertMany(personsArray);
    const persons = await Person.find().transform(per => {
        return {
            ...per,
            count: per.length
        }
    })
  
    console.log(persons);
})()

Шаг для запуска приложения: Запустите приложение, используя следующую команду из корневого каталога проекта:

node main.js

Вывод: Мы видим, что значение в результате остается неизменным.

Графическое представление базы данных с использованием MongoDB Compass:

Ссылка: https://mongoosejs.com/docs/api/query.html#query_Query-transform