我正在使用 express 和 mongoose 創建一個演示游戲網路應用程式。有幾種游戲型別,例如quizzes和puzzles。
我正在嘗試創建一個主 Schema Games,它繼承自其他 Schema 游戲型別。例如,像這樣:
const quizzes = new mongoose.Schema({
question: { type: String },
answer: { type: String }
})
module.exports = mongoose.model('quiz', quizzes);
const Games = new mongoose.Schema({
// these fields apply to all games
game_name: String,
date_created: { type: Date, default: Date.now },
// game type
game_type: { type: String, enum: ['quizzes', 'puzzles', 'multiplayer'] },
game_content: { type: Object, enum: [quizzes, puzzles] }
})
module.exports = mongoose.model('games', Games);
我有效地使用測驗作為模板,game_content作為游戲添加并存盤在資料庫中。但是,當我嘗試通過以下方式創建新游戲時:
const quiz = new Quiz({
question: "this is question 1",
answer: "this is answer 1"
})
const game = new Game({
game_name: "game 1",
game_type: "quizzes",
game_content: quiz
})
await game.save();
它認為quizzes是一個真實的模型,我在我的資料庫中得到一個空的測驗表以及我的游戲表。如何防止這種行為?
uj5u.com熱心網友回復:
如果您不想在資料庫中進行測驗,請不要為其創建模式。您可以僅使用嵌套物件定義游戲內容的模式。與創建檔案相同。
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/486076.html
