2

マングースにはかなり慣れていないので、これを行うための最良の方法を探しています。と の 2 つのモデルがUsersありCompaniesます。ユーザーは多くの会社を持つことができ、会社は多くのユーザーを持つことができます。

現在、会社のスキーマは次のようになっています。

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

次に.populate('users')、関連するユーザーのリストを取得するために使用できます。問題ありません。

私が疑問に思っているのは、すべてを にcompanies関連付ける最も効率的/最良の方法はuser何ですか? リストが同期しなくなる可能性があるため、上記と同じことはしたくありません。会社のユーザーを更新すると、ユーザーの会社も更新される方法はありますか?

理想的には、私はただできるUser.find().populate('companies')

4

1 に答える 1

7

populate を両方の方法で機能させる方法が見つかりませんでした。

通常、私たちはこのようなことをすることになります

/**
 * 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 に答える