2017-01-16 2 views
0

Ich bin neu bei node.js, mongodb und mongoose. Ich habe ein kleines Problem auf Ref-Objekt auf Mungo.Wie Artikel aus Ref Objekt einfügen

Dies ist mein Code

admin.js

router.post('/accounts/show_account/team/add_member/:account_id/:team_id', function(req,res){ 

    var account_id = req.params.account_id; 
    var team_id = req.params.team_id; 

    var full_name = req.body.full_name; 
    var position = req.body.position; 
    var dateStarted = req.body.dateStarted; 

    var errors = req.validationErrors(); 

    if (errors) { 
     // res.render('register',{errors:errors}); 
     console.log('errors'); 
    } else{ 
     var newMember = new Members({ 

      full_name : full_name, 
      position : position, 
      dateStarted : dateStarted 

     }); 

     newMember.save(function(err,member){ 
      if (err) { 
       console.log(err); 
      } else { 
       console.log(member); 
      } 
     }); 
    } 
}); 

model.js -> Schema

var mongoose = require('mongoose'); 
var bcrypt = require('bcryptjs'); 
var Schema = mongoose.Schema; 

var MemberSchema = mongoose.Schema({ 

    full_name : { 
     type: String 
    }, 
    current_position : { 
     type: String 
    }, 
    dateStarted : { 
     type: String 
    }, 
    is_admin: { 
     type: Boolean, 
     default : false 
    } 
}); 

var member = module.exports = mongoose.model('Members', MemberSchema); 
module.exports.createMember = function(newMember, callback){ 

    newMember.save(function(err){ 
     if (err) throw err; 
    }); 

} 

team.js -> Team Schema

var mongoose = require('mongoose'); 
var bcrypt = require('bcryptjs'); 
var Schema = mongoose.Schema; 

var TeamSchema = mongoose.Schema({ 
    team_name: { 
     type: String 
    }, 
    date_created: { 
     type: Date 
    }, 
    members: [{ 
     type: mongoose.Schema.Types.ObjectId, 
     ref : member 
    }] 
}); 




var Team = module.exports = mongoose.model('Team', TeamSchema); 



module.exports.createTeam = function(newTeam, callback){ 

    newTeam.save(function(err){ 
     if (err) throw err; 
    }); 

} 

I Ich versuche, dem Teamschema und dem Member beizutreten r Schema, aber ich weiß nicht, wie ich das anstellen soll.

+0

In 'ref' sollten Sie den Namen der' "Mitglieder" Eingabe ' Modell –

+0

Ich denke, ich habe bereits das Modell "Mitglieder" auf ref. Kannst du mich auf meinen Fehler hinweisen? –

+0

Sie haben den Verweis auf das Members-Modell eingegeben. Geben Sie stattdessen den Namen des Modells als Zeichenfolge ein. 'ref: 'Mitglieder'' –

Antwort

1

Sie sollten das Schema im Zusammenhang Namen als String hinzufügen

var mongoose = require('mongoose'); 
var bcrypt = require('bcryptjs'); 
var Schema = mongoose.Schema; 

var TeamSchema = mongoose.Schema({ 
    team_name: { 
     type: String 
    }, 
    date_created: { 
     type: Date 
    }, 
    members: [{ 
     type: mongoose.Schema.Types.ObjectId, 
     ref : "Members" 
    }] 
}); 




var Team = module.exports = mongoose.model('Team', TeamSchema); 



module.exports.createTeam = function(newTeam, callback){ 

    newTeam.save(function(err){ 
     if (err) throw err; 
    }); 

} 

Jetzt können Sie „join“ Ihre Schemata mit [populate][1] Funktion, wenn Sie einen serch tun.

Wenn Sie einfügen müssen neue Mitglieder innerhalb TeamSchema Dokument fügen Sie einfach ein _id neue Mitglied

var newMebers = new Members({...}); 

    newMembers.save() 
    .then(function(newMember){ 
     return TeamSchema.findById(<TeamId>, 
      {$push:{members:newMember._id}); 
     }) 
     .catch(function(err){ console.error(err)}); 
Verwandte Themen