mongoose和node.js的多态用户模型
我正在用mean.js样板制作一个应用程序。它是一个招聘引擎,用户是雇主和候选人。现在,雇主和候选人应该作为单独的文档存储,每个用户必须只有一个雇主或候选人,因为每个候选人或雇主都需要使用用户对象登录 我在rails和postgresql中这样做:mongoose和node.js的多态用户模型,node.js,mongodb,mongoose,polymorphic-associations,Node.js,Mongodb,Mongoose,Polymorphic Associations,我正在用mean.js样板制作一个应用程序。它是一个招聘引擎,用户是雇主和候选人。现在,雇主和候选人应该作为单独的文档存储,每个用户必须只有一个雇主或候选人,因为每个候选人或雇主都需要使用用户对象登录 我在rails和postgresql中这样做: ## User belongs_to :profileable, :polymorphic => true ## Candidate and Employer has_one :user, :as => :profileable
## User
belongs_to :profileable, :polymorphic => true
## Candidate and Employer
has_one :user, :as => :profileable
对于mongoose,这就是我迄今为止使用“mongoose schema extend”包所做的工作:
var extend = require('mongoose-schema-extend');
var UserSchema = new Schema({
email: {
type: String
},
password: {
type: String
}
}, { collection: 'users', discriminatorKey : '_type' });
var CandidateSchema = UserSchema.extend({
Experience: {
type: Number
}
});
var EmployerSchema = user.user.extend({
companyName: {
type: String
}
});
上述代码可以工作,但在mongodb中,仅为将_type属性设置为候选或雇主的用户创建文档
我认为它应该做的是将应聘者、雇主和用户存储为单独的文档。后来我不得不将雇主与公司和工作联系起来。另外,我需要用不同的标准分别询问应聘者和雇主
实现功能的最佳方法是什么?可以使用mognoose鉴别器处理scenairo 根据猫鼬文件: 鉴别器是一种模式继承机制。它们使您能够在同一基础MongoDB集合上拥有多个模式重叠的模型 关于鉴别器的教程不多,但我发现以下链接很有用:
谢谢你有什么收获吗?我也想做多态关系,我也是Rails的背景。