2012-06-27 4 views
0

그래서 사람과 그룹이있는 스키마가 있습니다. 저는 한 사람이 한 명 이상의 사람들이나 그룹과 관련 될 수 있도록하고 싶습니다.여러 종류의 집합으로 몽구스 스키마를 만드는 방법은 무엇입니까?

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

데이터베이스에 PersonsGroups 콜렉션이 있다고 가정하면 ObjectId refs 배열을 PersonSchema에 추가하여 다른 사람이나 그룹과의 관계를 캡처 할 수 있습니다. 마찬가지로 :

var PersonSchema = new Schema({ 
    name : String, 
    people: [{ type: Schema.ObjectId, ref: 'Person' }], 
    groups: [{ type: Schema.ObjectId, ref: 'Group' }] 
}); 

그럼 당신은 당신이 그들의 자세한 내용을 필요할 때마다 그 심판을 따라 몽구스의 populate 지원을 사용할 수 있습니다.

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'}] 
} 
관련 문제