Позволяет ли mongoose ODM легко сохранять обе стороны ассоциации? - PullRequest
5 голосов
/ 29 января 2012

Если у меня две модели с отношением has_many в Mongoose ODM.то есть.Пользователь принадлежит команде, а в команде много пользователей:

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

... есть ли способ сказать Mongoose добавить user в team.users коллекция на user.save({team: team, ...})?или мне просто нужно использовать промежуточное программное обеспечение save() в модели User?

Причина, по которой я спрашиваю, состоит в том, что это не один из вариантов использования, охватываемых документацией Mongoose, и эта функциональность является довольно стандартнойв конвенции рельсов / монгоидов.

1 Ответ

0 голосов
/ 29 января 2012

Чтобы ответить на ваш вопрос: вы должны написать эту функцию самостоятельно.

Однако прошли ли вы проект схемы документа ? Конкретно связывание против встраивания? Часто гораздо проще и эффективнее достичь отношения has_many с помощью встраивания документов.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...