history 관리
-
mongoDB에서 data history 관리하기mongoDB 2022. 7. 31. 17:34
문제사항 현재 사용하는 mongoDB에서는 과도하게 하나의 doc에 데이터를 embedded 시켜서 document 사이즈를 초과하게 되는 문제가 발생했다. 이는 history관련 로직이 문제였는데, 특정 data가 수정되었을 때 새로운 doc를 생성해서 관리하는 것이 아닌 history라는 배열에 이전 정보를 보관해서 저장하기 때문에 문제가 되었다. 사실 one-to-many이지만 one-to-few이기 때문에 embedded시켜도 문제가 없어야 하지만 애초에 doc사이즈가 매우 크기 때문에 문제가 발생했다. 해결 방법 이를 해결하기 위해 parent, visible 필드를 추가하고 data가 변경되면 기존의 doc을 clone하여 현재 상태의 snapshot으로 doc을 하나 생성한 뒤 parent에..