티스토리 뷰
반응형
몽고디비(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 |
---|