2017-06-13 80 views
0

我想使用簡單模式創建一個對象數組。在這個例子中,一個人有一個職業歷史對象,充滿個人職位。我無法弄清楚如何插入和更新對象數組。它只是錯誤。我能做到的唯一方法是明確的,例如。 '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

如果你想要把對象數組做

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'], 
    } 
}); 

在組看到$

+0

當我試着在一個方法中運行'push object',出現一個錯誤'Exce而調用方法'careerHistory.update'錯誤:在篩選出不在架構中的密鑰後,您的修改器現在爲空' – bp123

+0

@ bp123已編輯答案請立即檢查 – Sasikanth

+0

同樣的錯誤。這是一個collection2包錯誤? – bp123