2012-01-28 14 views
5

Jeśli mam dwa modele, z has_many relacji w Mongoose ODM. to znaczy. Użytkownik nie należy do zespołu, a zespół ma wielu użytkowników:Czy mangusta ODM pozwala z łatwością zapisać obie strony skojarzenia?

var User = new Schema({ 
    username : {type: String, required: true }, 
    email  : {type: String, required: true}, 
    team  : { type: Schema.ObjectId, ref: 'Team'}, 
    created_at : {type : Date, default : Date.now}, 
    updated_at : {type : Date, default : Date.now} 
}); 

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

i

var Team = new Schema({ 
    name  : {type: String, required: true}, 
    users  : [{ type: Schema.ObjectId, ref: 'User'}], 
    created_at : {type : Date, default : Date.now}, 
    updated_at : {type : Date, default : Date.now} 
}); 

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

... czy jest jakiś sposób, aby powiedzieć Mongoose dodać user do kolekcji team.users na user.save({team: team, ...})? lub czy po prostu muszę używać oprogramowania pośredniego save() w modelu użytkownika?

Pytam jest to, że nie jest to jeden z przypadków użycia objętych docs Mongoose i ta funkcjonalność jest dość standardowe w konwencji szyny/mongoid.

Odpowiedz

0

Aby odpowiedzieć na to pytanie: trzeba by napisać tę funkcjonalność siebie.

Jednak, czy przeszły schema design doc? Konkretnie łączenie a osadzanie? Często o wiele łatwiej i skuteczniej jest realizować relację "has_many" poprzez osadzanie dokumentów.

+0

tak mam. Odkryłem, że wbudowane ma sens, gdy podmioty nie istnieją bez rodzica. Zauważyłem też, że znacznie trudniej jest jawnie wykonywać kwerendy osadzonych danych. – justinjmoses

Powiązane problemy