我们可以将Mongoose模式模型的属性定义为另一个模型

时间:2018-06-16 15:29:37

标签: javascript angular mongodb typescript mongoose

我正在使用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;

所以我想知道我是否可以在mongoose声明相同的内容

1 个答案:

答案 0 :(得分:0)

你可以这样试试:

更具体的解释如下:http://mongoosejs.com/docs/populate.html

export class Project {
  $key: string;
  project_creator:  {type: mongoose.Schema.Types.ObjectId, ref: 'User'}
}