デザインに FlashcardSchemas と PackageSchemas があります。1 つのフラッシュカードが異なるパッケージに属することができ、パッケージに異なるフラッシュカードを含めることができます。
以下に、私のマングース スキーマ定義の簡略版を示します。
// package-schema.js
var Schema = mongoose.Schema,
ObjectId = Schema.ObjectId;
var PackageSchema = new Schema({
id : ObjectId,
title : { type: String, required: true },
flashcards : [ FlashcardSchema ]
});
var exports = module.exports = mongoose.model('Package', PackageSchema);
// flashcard-schema.js
var Schema = mongoose.Schema,
ObjectId = Schema.ObjectId;
var FlashcardSchema = new Schema({
id : ObjectId,
type : { type: String, default: '' },
story : { type: String, default: '' },
packages : [ PackageSchema ]
});
var exports = module.exports = mongoose.model('Flashcard', FlashcardSchema);
上記のコメントからわかるように、これら 2 つのスキーマ定義は別々のファイルに属し、相互に参照しています。
予想どおり、PackageSchema が定義されていないという例外が発生します。どうすればマングースと多対多の関係をマッピングできますか?