在用户架构中,我需要使用blocked
属性定义联系人字段。
我的实际定义是这样的:
const UserSchema = new Schema({
id: Schema.Types.ObjectId,
// Other fields
// ...
contacts: [{
type: Schema.Types.ObjectId,
ref: 'User'
}]
}
const UserModel = mongoose.model('User', UserSchema);
从那里我找不到在相同引用关系blocked
中添加contacts
字段的可能方法。是否有必要创建一个中介集合以将其他字段添加到关系中?
答案 0 :(得分:0)
我最终创建了一个联系人集合,该集合同时包含对用户的引用以及我需要的其他字段:
//user.js
const UserSchema = new Schema({
id: Schema.Types.ObjectId,
// Other fields
// ...
contacts: [{
type: Schema.Types.ObjectId,
ref: 'Contact'
}]
}
const UserModel = mongoose.model('User', UserSchema);
//contact.js
const ContactSchema = new Schema({
id: Schema.Types.ObjectId,
contact: {
type: Schema.Types.ObjectId,
ref: 'User'
},
blocked: {
type: Boolean,
required: true
}
}
const ContactModel = mongoose.model('Contact', ContactSchema);