MongoDB
 sql >> Base de Dados >  >> NoSQL >> MongoDB

Atualizando array de objetos no mongodb


Consegui corrigir isso mapeando meu objeto e executando 2 atualizações separadas. O primeiro remove o elemento antigo e o segundo adiciona a versão atualizada. Tenho certeza de que há uma maneira melhor de fazer isso, no entanto, isso parece funcionar.
handleFormSubmit(event) {
  event.preventDefault();
  const { careerHistoryPositions } = this.state;

  ProfileCandidate.update({_id: this.state.profileCandidateCollectionId}, { $unset: {
    'careerHistoryPositions': {}
  }
})        


const updatePosition = this.state.careerHistoryPositions.map((position) => {
  ProfileCandidate.update({_id: this.state.profileCandidateCollectionId}, { $push: {
    'careerHistoryPositions': {
      company: position.company,
      title: position.title,
      uniqueId: position.uniqueId
    }
  }
})