更新2个链接的moongoose模式

时间:2017-02-06 20:10:06

标签: javascript node.js mongodb mongoose

我有一个猫鼬用户架构和一个组织架构。每个用户属于一个组织,每个组织有许多用户,但有一个用户是其管理员。此用户已保存在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文档并进行更新?在一个查询中无法更新?

0 个答案:

没有答案