안녕하세요 @realmankwon입니다.
몽고DB에 데이터를 넣기 위해 설정을 완료하고 데이터를 입력 중에 있습니다.
몽고DB의 경우 NoSQL 이기 때문에 중복된 값이 들어갈 수 있습니다.
이를 막기 위해 처음에는 PK 처럼 사용될 Field 로 Record 를 지우고 입력을 하도록 하였습니다.
battle_history.deleteMany({ battle_id : battle_id });
battle_history.insert(deck);
문제는 속도가 너무 느리다는 것입니다.
검색을 좀 해보니 update에 upsert 설정이 있었습니다.
update 할 대상을 찾고 만약에 해당되는 레코드가 없으면 insert를 시켜주는 키워드입니다.
사용법은 다음과 같습니다.
common.battle_history.updateMany(
{ battle_id: battle_id }, // where 조건문
{ $set: deckObj }, // 수정 or 입력할 값
{ upsert: true } // upsert 설정
);
아무래도 insert 하는 것보다는 속도가 느리지만 이전처럼 삭제하고 입력하는 것보다는 빠른 것 같습니다.
몽고DB를 잘 사용하기 위해서는 많은 공부가 필요할 것 같네요 ^^