티스토리 뷰

mongodb

MongoDB - insert vs upsert

타올이 2023. 12. 21. 22:45
반응형


몽고디비(MongoDB)에서 insert와 upsert는 데이터를 데이터베이스에 추가하는 두 가지 다른 방법입니다. 이들의 주된 차이점은 데이터가 이미 존재하는 경우 어떻게 처리되는지에 있습니다. 아래에서 각각의 차이점과 예시를 자세히 설명해드리겠습니다.

 

insert

새로운 데이터를 컬렉션에 추가할 때 사용됩니다. 만약 insert를 사용해 추가하려는 데이터의 _id 값이 이미 존재한다면, MongoDB는 중복된 키 에러를 반환합니다. 이는 insert가 오직 새로운, 존재하지 않는 데이터에만 사용될 수 있음을 의미합니다.

db.users.insert({
  _id: 1,
  name: "홍길동",
  email: "hong@example.com"
});

이 예시에서 users 컬렉션에 새 사용자를 추가하려고 합니다. 만약 _id 값이 1인 사용자가 이미 존재한다면, 이 명령은 에러를 반환할 것입니다.

 

upsert

upsert는 update 명령의 일부로 사용됩니다. 이 옵션은 지정된 조건을 만족하는 문서가 존재하지 않을 때, 새 문서를 삽입(insert)하는 기능을 합니다. 즉, upsert는 "업데이트하거나, 필요하다면 삽입하라"는 의미입니다. 만약 조건을 만족하는 문서가 이미 존재한다면, 그 문서는 업데이트됩니다.

db.users.update(
  { _id: 2 },
  {
    $set: { name: "이순신", email: "lee@example.com" }
  },
  { upsert: true }
);

이 예시에서는 _id가 2인 사용자를 찾아 그 정보를 업데이트하려고 합니다. 만약 해당 사용자가 존재하지 않는다면, 새로운 사용자가 _id가 2로 추가됩니다.

반응형

'mongodb' 카테고리의 다른 글

MongoDB - registry  (0) 2023.12.21
반응형
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
«   2024/11   »
1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
링크
글 보관함