2

对猫鼬来说相当新,所以我正在寻找最好的方法来做到这一点。我有两个模型:UsersCompanies. 一个用户可以有很多公司,一个公司可以有很多用户。

现在我的公司架构如下所示:

CompanySchema = new Schema
  name:
    type: String
    unique: true
  slug:
    type: String
  users: [
    type: Schema.Types.ObjectId
    ref: 'User'
  ]

然后我可以.populate('users')用来获取关联用户的列表。那里没问题。

我想知道的是,让所有人companies与 a 相关联的最有效/最好的方法是user什么?我不想做与上面相同的事情,因为列表可能会不同步。当我更新公司的用户时,有没有办法让用户的公司也更新?

理想情况下,我可以做User.find().populate('companies')

4

1 回答 1

7

我还没有找到一种方法来填充两种方式。

通常我们最终会做这样的事情

/**
 * Load the categories for this account
 * @method categories
 * @memberof Account
 * @instance
 * @param {Function} done 
 */
AccountSchema.methods.categories = function (done) {
  var Category = this.model('Category');

  return Category.find({account: this}, done);
};
于 2013-04-19T19:40:20.643 回答