我们可以将 Mongoose 模式模型的属性定义为另一个模型吗
Posted
技术标签:
【中文标题】我们可以将 Mongoose 模式模型的属性定义为另一个模型吗【英文标题】:Can we define property of Mongoose schema model as another model 【发布时间】:2018-11-26 02:30:45 【问题描述】:我正在使用 mongoose 为我的应用程序创建模型, 基本上在创建 2 个这样的模型时。
// user.js
var mongoose = require('mongoose');
var Schema = mongoose.Schema;
var user = new Schema(
$key: String,
us_first: String,
us_family: String,
displayName: String,
email: String,
);
module.exports = mongoose.model('user', user);
// project.js
var mongoose = require('mongoose');
var Schema = mongoose.Schema;
var project = new Schema(
$key: String,
project_creator: String,
);
module.exports = mongoose.model('project', project);
现在我想要的是project
模型,project_creator
的类型应该是user
模型(现在它只是一个字符串类型)。
我问这个是因为当我使用 Angular 和 Typescript 做前端时,我可以像这样声明项目模型:
// user.ts
export class User
$key: string;
us_first: string;
us_family: string;
displayName: string;
email: string;
// project.ts
export class Project
$key: string;
project_creator: User;
所以我想知道我是否可以在猫鼬中声明同样的东西
【问题讨论】:
你试过project_creator: user
吗?而module.exports
会覆盖之前导出的内容,因此使用两次几乎没有意义。
你考虑过在猫鼬中使用人口吗?链接:mongoosejs.com/docs/populate.html
【参考方案1】:
你可以试试这个方法:
更具体的解释在这里:http://mongoosejs.com/docs/populate.html
export class Project
$key: string;
project_creator: type: mongoose.Schema.Types.ObjectId, ref: 'User'
【讨论】:
以上是关于我们可以将 Mongoose 模式模型的属性定义为另一个模型吗的主要内容,如果未能解决你的问题,请参考以下文章