我有一个猫鼬用户架构和一个组织架构。每个用户属于一个组织,每个组织有许多用户,但有一个用户是其管理员。此用户已保存在createdBy
文档的organisation
字段中。我的用户架构是:
var User = new mongoose.Schema({
email: {
type: String,
required: true,
unique: true
},
...
...
organisation: {
type: Schema.Types.ObjectId,
ref: 'Organisation'
}
});
组织架构:
var Organisation = new mongoose.Schema({
name: {
type: String,
required: true
},
createdBy: {
type: String,
ref: 'User'
}
});
因此,您可以看到我使用ref
链接两个模式。
当我想更新用户的组织和电子邮件时,我这样做:
User.findById(data.userId, function(err, user) {
user.email = data.email;
user.organisation.name = data.organisation;
user.save(function(err, user){
console.log('user is ', user);
});
});
但是,只有电子邮件才会更新。我是否需要单独获取organisation
文档并进行更新?在一个查询中无法更新?