0

だから私は人とグループのスキーマを持っています。人が 1 つまたは複数の人またはグループに関連付けられるようにしたいと考えています。これまでのところ、私はこれを持っています:

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 に 1 つ以上のグループおよび/または他の人のセットを追加する方法は?

4

2 に答える 2

0

Personsこれに基づいてデータベースにとコレクションの両方があると仮定するとGroups、ObjectId 参照の配列を PersonSchema に追加して、他の人またはグループとの関係を取得できます。次のように:

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

その後、マングースのpopulateサポートを使用して、完全な詳細が必要なときにいつでもそれらの参照をたどることができます。

于 2012-06-27T19:28:37.087 に答える
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) Person は B (_id:200) Person およびグループ MyGroup (_id:333) に関連しています。

JSON は次のようになります。

{
 '_id':'100',
 'name': 'A',
 'OtherDetails': '',
 'RefObjDetails':[{'RelationType':'P', RefObjId:'200'},{'RelationType':'G', RefObjId:'333'}]
}
于 2013-01-08T11:03:40.563 に答える