Я пытаюсь создать базовое веб-приложение для фэнтези-футбола с Node, Express и Mongo.У меня есть три коллекции: пользователь, команда и игрок.Тем не менее, я застрял в том, как я могу связать все свои модели вместе.По сути, я хочу, чтобы пользователь мог щелкнуть по игроку и добавить его в свою конкретную команду, которая затем сохраняется в Mongo для будущего использования.Я разместил часть своего кода ниже.Будем очень благодарны за любые предложения!
В настоящее время я могу отображать игроков из моей коллекции в виде списка в моем представлении HTML с помощью кнопки, связанной со следующим маршрутом:
router.get('/select-player/:id', function(req,res,next){
var playerId = req.params.id;
user = req.user;
// Query to find the selected player
Player.findById(playerId, function (err, player){
if (err) {
// Improve- some type of alert
return res.redirect ('/');
}
// Add to Team Here
// redirect home after selection
res.redirect('/');
});
});
ОднакоЗатем я хочу сохранить каждый выбор в команду пользователя.Который будет массив игроков.
Схема команды:
var mongoose = require('mongoose');
var Schema = mongoose.Schema;
var Player = require('./player');
var User = require('./user');
var schema = new Schema({
user: {type: Schema.Types.ObjectId, ref: "User"},
team: [{type: Schema.Types.ObjectId, ref: "Player"}]
});
module.exports = mongoose.model('Team', schema);
Схема игрока:
var mongoose = require('mongoose');
var Schema = mongoose.Schema;
var schema = new Schema({
name: String,
position: String,
teamAbbr: String,
stats:{
"1": Number
},
seasonPts: Number,
seasonProjectedPts: Number,
weekPts: Number,
weekProjectedPts: Number,
});
module.exports = mongoose.model('Player', schema);
В качестве альтернативы, я играл с идеей включения поля команды в схему пользователя, чтобыть массивом игроков и просто удалить схему команды.
// User Schema
var UserSchema = mongoose.Schema({
username: {
type: String,
index:true
},
password: {
type: String
},
email: {
type: String
},
name: {
type: String
},
});
var User = module.exports = mongoose.model('User', UserSchema);