我们的项目有以下要求 -
所以我创建了以下模式 - 但我无法使用populate,我发现添加/更新/删除了很多痛苦。此外,当我查询项目时,我想显示用户的电子邮件ID而不是objectId,但不想使用电子邮件作为参考,因为用户可以更改他们的电子邮件。考虑到架构上最受欢迎的操作,请帮助我设计更好的设计 -
以下工作模式存在于单独的文件user.js和project.js中,并且需要导出模型。
var userSchema = mongoose.Schema({ username: {type:String}, password: String, email: {type:String, required:true, unique: true, index: true}, createdAt: { type: Date, default: Date.now }, firstName: String, lastName: String, home_project: {type:Schema.Types.ObjectId, ref:Project}, owner: [{type:Schema.Types.ObjectId, ref:Project}], admin: [{type:Schema.Types.ObjectId, ref:Project}], viewer: [{type:Schema.Types.ObjectId, ref:Project}] }); var projectSchema = mongoose.Schema({ projectName: {type:String, required:true, unique: true, index: true}, createdAt: { type: Date, default: Date.now }, owner: {type:String, ref:User}, admin: [{type:String, ref:User}], viewer: [{type:String, ref:User}] });