API-интерфейс прототипа запроса Mongoose.transform ()
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