我是MongoDB的新手,我正在用Mongoose創建一個簡單的數據庫,並使用以下模型:用戶,遊戲和玩家。MongoDB Mongoose保存具有嵌套對象的對象
因此,一個用戶不包含任何或許多遊戲。每場比賽都有球員,而每名球員都是指用戶。像這樣(我爲了清楚而簡化的模式):
const UserSchema = new Schema({
name: String,
games: [{
type: Schema.Types.ObjectId,
ref: 'game'
}]
});
const GameSchema = new Schema({
mode: Number,
players: {
type: [{
type: Schema.Types.ObjectId,
ref: 'player'
}],
required: true
}
});
const PlayerSchema = new Schema({
order: Number,
isWinner: Boolean,
user: {
type: Schema.Types.ObjectId,
ref: 'user',
required: true
}
});
所以,現在在前臺我要了一份請願書發送到後端來創建一個新的遊戲,爲用戶喬(_id:11111)和Bob(_id :22222),所以我發送POST到/ api /遊戲與身體{ users: [ 11111, 22222 ] }
現在我的問題是,爲後端創建一個新的遊戲,它也必須創建2名球員。達到此目的的最佳方式是什麼?
在Game.create()方法中,我應該檢索數據,創建並保存玩家,創建遊戲,分配玩家,保存遊戲以及更新用戶並添加遊戲id。
我還閱讀了關於Mongoose中間件,您可以在其中設置某些功能在某些操作之前或之後執行。所以也許它會更好: 在Game.create之前的預先功能,在Game.create之前創建球員 之後的功能,以更新用戶
最後一個看起來更乾淨。 最好的方法是什麼?也許另一個我沒有考慮過?
謝謝