目前我有4个型号。用户,个人资料,兴趣和令牌。在用户和个人资料之间存在一对一的关系。在用户和令牌之间存在一对多的关系。在个人资料和兴趣之间还存在一对多关系,兴趣将通过管理员稍后添加更多内容来预先定义。
用户
var UserSchema = new Schema({
email: {
type: String,
lowercase: true,
unique: true,
required: true
},
phone: [{countrycode: String}, {number: String}],
tokens: [{type: Schema.Types.ObjectId, ref: 'Token'}],
profile: {
type: Schema.Types.ObjectId, ref: 'Profile'
},
},
{
timestamps: {createdAt: 'created_at', updatedAt: 'updated_at'}
});
资料
var ProfileSchema = new Schema({
username: {
type: String,
unique: true,
},
firstname: {
type: String
},
lastname: {
type: String
},
gender: {
type: String
},
dob: {
type: Date
},
country: {
type: String
},
city: {
type: String
},
avatar: {
type: String
},
about: {
type: String
},
interests: [{
type: Schema.Types.ObjectId,
ref: 'Interest'
}],
},
{
timestamps: {createdAt: 'created_at', updatedAt: 'updated_at'}
});
令牌
var TokenSchema = new Schema({
name: {
type: String,
},
value: {
type: String,
},
},
{
timestamps: {createdAt: 'created_at', updatedAt: 'updated_at'}
});
兴趣
var InterestSchema = new Schema({
name: {
type: String,
unique: true,
},
},
{
timestamps: {createdAt: 'created_at', updatedAt: 'updated_at'}
});
我是否正确设置了这些方案/关系?现在,如果我想给用户一个角色,我会创建一个新的角色模式吗?
感谢。
答案 0 :(得分:0)
如果你想在NoSQL db中建立关系,我认为你需要Relational数据库
答案 1 :(得分:0)
您无法在NoSQL中添加关系。你唯一能做的就是在另一个模式中使用模式作为字段类型,比如
var Comments = new Schema({
title: String,
body: String,
date: Date
});
var BlogPost = new Schema({
author: ObjectId,
title: String,
body: String,
date: Date,
comments: [Comments],
meta: {
votes : Number,
favs : Number
}
});
mongoose.model('BlogPost', BlogPost);