无法更新对象数组

时间:2017-06-13 02:19:58

标签: meteor simple-schema

我正在尝试使用simple-schema创建一个对象数组。在这个例子中,一个人拥有一个充满个人职位的职业历史对象。我无法弄清楚如何插入和更新对象数组。它只是错误。我可以让它工作的唯一方法是明确,例如。 'careerHistory.position.1.company'

我正在使用:

  • 流星
  • 简单模式
  • reactjs
  • collection2核

路径:mongodb

const ProfileCandidateSchema = new SimpleSchema({
  userId: {
    type: String,
    regEx: SimpleSchema.RegEx.Id
  },
  careerHistory: { type: Array, optional: true },
  'careerHistory.position': { type: Object, optional: true },
  'careerHistory.position.$': { type: Object, optional: true },
  'careerHistory.position.$.company': { type: String, optional: true },
  'careerHistory.position.$.title': { type: String, optional: true }
});

路径:updateForm.js

ProfileCandidate.update(id, { $set: {
    'careerHistory.position.company': this.state['position.company'],
    'careerHistory.position.title': this.state['position.title'],
  }
});

1 个答案:

答案 0 :(得分:1)

如果要将对象推送到数组

ProfileCandidate.update(id, 
  { $push: { careerHistory: { position: {
    'company': this.state['position.company'],
    'title': this.state['position.title'],
  }}}
});

如果您想更新特定对象

ProfileCandidate.update({ _id: id, 'careerHistory.position.company': this.state['position.company'] }, { $set: {
    'careerHistory.position.$.title': this.state['position.title'],
  }
});

请参阅集

中的$