Mongoose SchemaType.prototype.ref() API

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

Метод 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