This content got low rating by people.

[개발] 몽고DB upsert

Words
121
Reading
1 min
Listen
Play
5y

안녕하세요 realmankwon@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를 잘 사용하기 위해서는 많은 공부가 필요할 것 같네요 ^^

[개발] 몽고DB upsert | Ecency