我在設計中使用了FlashcardSchemas和PackageSchemas。一個閃卡可以屬於不同的包,一個包可以包含不同的閃卡。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沒有定義,符合市場預期。我怎樣才能與貓鼬繪製多對多的關係?
有沒有簡單的方法來做到這一點 - 爲什麼你有軟件包的閃卡模式的一部分,和閃卡的包模式的一部分?你期望運行哪些查詢? – Alex
當我從數據庫中取出一個包時,我想填充卡陣列,當我從數據庫中取出一張卡時,我想查看卡所屬的包。如果沒有一個簡單的方法來做到這一點,我應該使用第三個模式函數來存儲這些關係嗎? –