如何在Mongoose中调用相同模式的对象

时间:2018-05-04 10:14:43

标签: mongodb mongoose mongoose-schema mongoose-populate

我正在尝试使用在同一模式中定义的对象。

const officeSchema = new mongoose.Schema({
Employee_Info:{
   Name:{
    first: String,
    middle: String,
    last: String,
    },
   Phone_Info:{
    number : Number,
    type: String
    },
},
Employer_Info:{
    Name:{
 //I am trying to use the Name object which I defined above
   },
    Phone_Info:{
//I am trying to use the Phone_Info object which I defined above
  },
},
});

我希望对象约束可以在我在上面以名称 Phone_Info

的名义定义的相同模式中的任何位置使用

问题1:已解决

问题2:

  

如何将一个模型的模式用于另一个模型?

EMP.ts

import * as mongoose from 'mongoose';
import {Schema} from 'mongoose';
const employeeSchema = new Schema({
Name:{
first: String,
middle: String,
last: String,
},
Phone_Info:{
number : Number,
type: String
}
});
const employerSchema = new Schema({
employee : employeeSchema
}); 
const Employer = mongoose.model('employer', employerSchema);
export default employer;
const Employee = mongoose.model('employee', employeeSchema); 
module.exports = employee;

EMP2.ts

    import * as mongoose from 'mongoose';
    import {Schema} from 'mongoose';
    import Employee from './emp/models';
    import 
    const employee2Schema = new mongoose.Schema({   
    employee1: Employee;
    })

我想在employee1中使用employeeSchema

1 个答案:

答案 0 :(得分:0)

我担心你将不得不使用2个模式,如下所示:

const employeeSchema = new Schema({
    Name:{
    first: String,
    middle: String,
    last: String,
    },
   Phone_Info:{
    number : Number,
    type: String
    }
});


const employerSchema = new Schema({
    employee : employeeSchema
});

然后您只能导出雇主架构。

const Employer = mongoose.model('employer', employerSchema);

module.exports = employer;

编辑1: 要在另一个模型中使用此模式,您只需使用

导出该模式
const Employee = mongoose.model('employee', employeeSchema); 
module.exports = employee;

然后使用 import 将其导入到其他模型中,您可以像在第一个中一样使用它

import employee from './model_doc_name'