猫鼬相当新,所以我正在寻找最好的方法来做到这一点。我有两个模型: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')
的最有效/最佳方法是什么?我不想像上面那样做,因为列表可能不同步。当我更新公司的用户时,有没有一种方法可以更新用户的公司?
理想情况下,我可以{{1}}
答案 0 :(得分:6)
我还没有办法让人们双向工作。
通常我们最终会做这样的事情
/**
* 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);
};