2012-01-28 24 views
5

Nếu tôi có hai kiểu máy, với mối quan hệ has_many ở Mongoose ODM. I E. Người dùng thuộc về Team và đội có nhiều người sử dụng:Mongoose ODM có cho phép bạn lưu cả hai mặt của một hiệp hội một cách dễ dàng?

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); 

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); 

... là có cách nào để nói với Mongoose để thêm user đến việc thu thập team.users trên user.save({team: team, ...})? hoặc tôi chỉ phải sử dụng phần mềm trung gian save() trong Mô hình người dùng?

Lý do tôi hỏi là đây không phải là một trong các trường hợp sử dụng được các tài liệu Mongoose bao hàm và chức năng này khá chuẩn trong quy ước rails/mongoid.

Trả lời

0

Để trả lời câu hỏi của bạn: bạn phải tự mình viết chức năng đó.

Tuy nhiên, bạn đã trải qua schema design doc chưa? Cụ thể liên kết vs nhúng? Nó thường dễ dàng hơn và hiệu quả hơn để hoàn thành mối quan hệ "has_many" thông qua việc nhúng tài liệu.

+0

yea i have. Tôi đã tìm thấy rằng nhúng có ý nghĩa khi các thực thể không tồn tại mà không có cha mẹ. tôi cũng thấy khó thực hiện truy vấn dữ liệu được nhúng một cách rõ ràng hơn. – justinjmoses

Các vấn đề liên quan