Сохранение данных из веб-приложения между несколькими коллекциями Mongo (Node, Express, Mongo) - PullRequest
0 голосов
/ 17 ноября 2018

Я пытаюсь создать базовое веб-приложение для фэнтези-футбола с 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);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...