我的设计中有FlashCardSchema和PackageSchema.一个闪存卡可以属于不同的包,一个包可以包含不同的闪存卡.
下面是我的mongoose 模式定义的精简版本:
// 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);
从上面的注释中可以看到,这两个模式定义属于不同的文件,并且相互引用.
我得到一个例外,说明PackageSchema没有像预期的那样定义.我如何映射与mongoose 的多对多关系?