gpt4 book ai didi

node.js - 使用 mongoose 和 node.js 的多态用户模型

转载 作者:可可西里 更新时间:2023-11-01 09:44:22 24 4
gpt4 key购买 nike

我正在使用 mean.js 样板制作应用程序。它是一个招聘引擎,用户是雇主和候选人。现在雇主和求职者应该作为单独的文件存储,每个用户必须只有一个雇主或求职者,因为每个求职者或雇主都需要使用用户对象登录。

我在 rails 中用 postgresql 做了这个:

## 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 鉴别器处理。

根据 Mongoose 文档:

Discriminators are a schema inheritance mechanism. They enable you to have multiple models with overlapping schemas on top of the same underlying MongoDB collection.

我找不到很多关于鉴别器的教程,但这里有一个我觉得有用的链接: http://thecodebarbarian.com/2015/07/24/guide-to-mongoose-discriminators

谢谢

关于node.js - 使用 mongoose 和 node.js 的多态用户模型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24561182/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com