Mongoose SchemaType.prototype.ref() API
Метод MongooseSchemaType.ref() API Mongoose используется для построения отношений между двумя схемами на основе идентификаторов объектов. Мы можем установить ссылку на модальное окно, используя модальное имя, модальный класс, функцию, которая возвращает модальное имя, и функцию, которая возвращает модальный класс. Мы можем получить доступ к методу ref() для объекта схемы.
Синтаксис:
MongooseSchemaType.ref()
Параметры: метод MongooseSchemaType.ref() принимает один параметр, то есть модальное имя или модальный класс:
- ref: это относится к имени модального, модального класса или функции, которая возвращает модальное имя или модальный класс.
Возвращаемое значение: функция MongooseSchemaType.ref() возвращает ссылку SchemaType.
Настройка приложения Node.js:
Шаг 1. Создайте приложение Node.js с помощью следующей команды:
npm init
Шаг 2: После создания приложения NodeJS установите необходимый модуль с помощью следующей команды:
npm install mongoose
Структура проекта: Структура проекта будет выглядеть так
Пример 1. В этом примере мы установили соединение с базой данных с помощью mongoose и определили две модели. Во-первых, userSchema имеет два столбца или поля «имя» и «возраст», а во-вторых, studentSchema имеет три столбца или поля, включая ref «rollNumber», «address» и «user». В конце концов, мы используем ref() для ссылки на пользовательский модальный режим на студенческий модальный. Мы устанавливаем модальную ссылку «Пользователь» в поле «Пользователь» студенческого модала или студенческой схемы.
app.js: запишите приведенный ниже код в файл app.js:
Javascript
// Require mongoose module const mongoose = require( "mongoose" ); // Set Up the Database connection useNewUrlParser: true , useUnifiedTopology: true , }); const userSchema = new mongoose.Schema({ name: String, age: Number, }); // Defining userSchema model const User = mongoose.model( "User" , userSchema); const studentSchema = new mongoose.Schema({ rollNumber: Number, Address: String, user: mongoose.SchemaTypes.ObjectId }) // Defining studentSchema model const Student = mongoose.model( "Student" , studentSchema); // Setting modal name as String studentSchema.path( "user" ).ref( "User" ); console.log(studentSchema.paths.user) |
Шаг для запуска программы: Чтобы запустить приложение, выполните следующую команду из корневого каталога проекта:
node app.js
Выход:
ObjectId { path: "user", instance: "ObjectID", validators: [], getters: [], setters: [], _presplitPath: [ "user" ], options: SchemaObjectIdOptions { type: [Function: ObjectId] { schemaName: "ObjectId", defaultOptions: {}, get: [Function (anonymous)], set: [Function: set], _checkRequired: [Function (anonymous)], _cast: [Function: castObjectId], cast: [Function: cast], _defaultCaster: [Function (anonymous)], checkRequired: [Function (anonymous)] }, ref: "User" }, _index: null, [Symbol(mongoose#schemaType)]: true }
Пример 2: В этом примере мы устанавливаем модальный режим при создании схемы ученика. Мы можем сделать это, указав поле «user» в studentSchema как объект ключей «type» и «ref».
app.js: запишите приведенный ниже код в файл app.js:
Javascript
// Require mongoose module const mongoose = require( "mongoose" ); // Set Up the Database connection { useNewUrlParser: true , useUnifiedTopology: true , }); const userSchema = new mongoose.Schema({ name: String, age: Number, }); // Defining userSchema model const User = mongoose.model( "User" , userSchema); // Defining ref while creating student Schema const studentSchema = new mongoose.Schema( { rollNumber: Number, Address: String, user: { type: mongoose.SchemaTypes.ObjectId, ref: User } }) // Defining studentSchema model const Student = mongoose.model( "Student" , studentSchema); // Setting modal name as String studentSchema.path( "user" ).ref( "User" ); console.log(studentSchema.paths.user) |
Шаг для запуска программы: Чтобы запустить приложение, выполните следующую команду из корневого каталога проекта:
node app.js
Выход:
ObjectId { path: "user", instance: "ObjectID", validators: [], getters: [], setters: [], _presplitPath: [ "user" ], options: SchemaObjectIdOptions { type: [Function: ObjectId] { schemaName: "ObjectId", defaultOptions: {}, get: [Function (anonymous)], set: [Function: set], _checkRequired: [Function (anonymous)], _cast: [Function: castObjectId], cast: [Function: cast], _defaultCaster: [Function (anonymous)], checkRequired: [Function (anonymous)] }, ref: "User" }, _index: null, [Symbol(mongoose#schemaType)]: true }
Ссылка: https://mongoosejs.com/docs/api/schematype.html#schematype_SchemaType-ref