对 mongoose 还很陌生,所以我正在寻找执行此操作的最佳方法。我有两个模型: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')
最佳答案
我还没有找到让 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);
};
关于node.js - Mongoose 双向模型/多对多关系,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16111824/