所以我有一个人和团队的架构。我想让一个人与一个或多个人或团体有关。到目前为止,我有这个:
var PersonSchema = new Schema({
name : String,
});
var PersonModel = mongoose.model('Person', PersonSchema);
var GroupSchema = new Schema({
name : String,
members : [PersonSchema]
});
var GroupModel = mongoose.model('Group', GroupSchema);
如何向PersonSchema添加一组一个或多个组和/或其他人?
答案 0 :(得分:0)
假设您的数据库中基于此同时拥有Persons
和Groups
个集合,您可以将ObjectId引用的数组添加到PersonSchema以捕获人与其他人或组的关系。如:
var PersonSchema = new Schema({
name : String,
people: [{ type: Schema.ObjectId, ref: 'Person' }],
groups: [{ type: Schema.ObjectId, ref: 'Group' }]
});
然后,只要您需要完整的详细信息,就可以使用mongoose的populate
支持来跟踪这些引用。
答案 1 :(得分:0)
您可以定义如下:
var Relation = new mongoose.Schema({
RelationType:String, RefObjId: String //You can also take Schema.ObjectId
});
var PersonObj = new mongoose.Schema({
name: String,
OtherDetails: String,
RefObjDetails:[Relation]
});
示例:
A(_id:100)人与B(_id:200)人和MyGroup(_id:333)分组有关。
JSON将如下所示:
{
'_id':'100',
'name': 'A',
'OtherDetails': '',
'RefObjDetails':[{'RelationType':'P', RefObjId:'200'},{'RelationType':'G', RefObjId:'333'}]
}