mongoos:如何从父模型访问多个子模型

时间:2020-06-27 17:18:11

标签: node.js mongodb express mongoose

在我的应用程序中,有两个主要角色1]用户2]医生。和2种模型,一种是针对用户的,另一种是针对医生的。当角色为医生时,医生模型具有一些我想从用户模型访问的专业细节。

这是我尝试过的

用户模型

const mongoose = require("mongoose");
const { schema, DocSchema } = require("./doctor.model");
const docSchema = require("./doctor.model").DocSchema;
const Schema = mongoose.Schema;

const UserSchema = new mongoose.Schema({
  name: {
    type: String,
    required: true,
  },
  email: {
    type: String,
    required: true,
  },
  password: {
    type: String,
    required: true,
  },
  phone: {
    type: String,
    required: true,
  },
  city: {
    type: String,
  },
  state: {
    type: String,
  },
  date: {
    type: Date,
    default: Date.now,
  },
  select: {
    type: String,
  },
  role: {
    type: String,
    enum: ["admin", "user", "doctor"],
    default: "user",
  },
  isVerified: { type: Boolean, default: false },
  resetPasswordToken: { type: String },
  resetPasswordExpires: { type: Date },
  professional_details: [
    {
      type: Schema.Types.ObjectId,
      ref: "docSchema",
      role: "doctor",
    },
  ],
  doctor: [docSchema],
});

const User = mongoose.model("User", UserSchema);
module.exports = User;

医生模型

const mongoose = require("mongoose");
const Schema = mongoose.Schema;
const User = require("./users").User;

const DocSchema = new mongoose.Schema({
  bio: {
    type: String,
    required: true,
  },
  speciality: {
    type: String,
    required: true,
  },
  education: {
    type: String,
    required: true,
  },
  treatment: {
    type: String,
    required: true,
  },
  location: {
    type: String,
    required: true,
  },
  hospitalList: {
    type: String,
    required: true,
  },
  achievements: {
    type: String,
  },
  awards: {
    type: String,
  },
  fee: {
    type: String,
    required: true,
  },
  img: { data: Buffer, contentType: String },
  userRef: [
    {
      type: Schema.Types.ObjectId,
      ref: "User",
    },
  ],
});

const Doctor = mongoose.model("Doctor", DocSchema);
module.exports = { Doctor: Doctor, DocSchema: DocSchema };

现在,当用户注册为角色医生时,如何访问医生模式中的专业详细信息

预先感谢

0 个答案:

没有答案