MongoDB - 문서 삽입
안녕하세요, 미래의 데이터베이스 마법사 여러분! 오늘 우리는 MongoDB의 마법의 세계로 접어들어 collections에 문서를 삽입하는 방법을 배우겠습니다. 프로그래밍에 새로운 사람이라면 걱정하지 마세요 - 저는 지혜로운 고대의 마법사처럼 젊은 제자에게 가르쳐주는 마음으로 단계별로 안내해드리겠습니다. 그러니 마법仗(또는 키보드)을 손에 들고 시작해보세요!
MongoDB에서 문서 이해
문서를 삽입하기 전에 MongoDB에서 문서가 무엇인지 빠르게复習해보겠습니다. 문서는 정보를 담고 있는 특별한 고서纸라고 생각해보세요. 비마법 세계에서는 이 정보를 "데이터"라고 부릅니다. 각 문서는 마법의 책에 있는 고유한 항목처럼 특정 아이템이나 실체에 대한 다양한 세부 정보를 포함하고 있습니다.
예를 들어, 마법 동물에 대한 문서는 다음과 같을 수 있습니다:
{
"name": "Dragon",
"type": "화염을 뿜는",
"dangerLevel": 10,
"abilities": ["비행", "화염을 뿜는", "보물을 쌓는"]
}
이제 문서가 무엇인지 이해했으므로, MongoDB collections에 이러한 마법적인 항목을 추가하는 방법을 배워보겠습니다!
insert() 메서드
insert()
메서드는 MongoDB의 "Wingardium Leviosa"와 같습니다 - collections에 문서를 추가하는 기본 마법입니다. 하지만 "Wingardium Leviosa"가 더 구체적인 띄우는 마법으로 대체된 것처럼, insert()
메서드도 더 정밀한 메서드로 대체되었습니다. 하지만 걱정하지 마세요, 젊은 마법사 여러분, 현대적인 방법을 가르쳐드리겠습니다!
insertOne() 메서드
insertOne()
메서드는 단일 문서를 collections에 추가하고 싶을 때 완벽합니다. 이는 마법의 보물을 하나하나 신중하게 보물 창고에 보관하는 것과 같습니다.
문법
db.collection.insertOne(document)
예제
"Hogwarts" collections에 새로운 학생을 추가해보겠습니다:
db.hogwarts.insertOne({
name: "Harry Potter",
house: "Gryffindor",
year: 1,
subjects: [" potion 과학", "어둠의 힘에 대한 방어", "마법의 주문"]
})
이 마법(또는 코드)을 실행하면 MongoDB는 이 문서를 "Hogwarts" collections에 추가합니다. 이렇게 간단합니다!
결과 이해
insertOne()
마법을 사용할 때 MongoDB는 조용히 문서를 추가하는 것이 아니라, 마법의 결과를 보여줍니다. 다음과 같은 것을 볼 수 있습니다:
{
"acknowledged": true,
"insertedId": ObjectId("60d5ec9d7c213e8456b1b2d4")
}
-
acknowledged
: 이는 삽입이 성공했는지 알려줍니다.true
는 "네, 당신의 마법이 작동했습니다!"를 의미합니다. -
insertedId
: 이는 새로 추가된 문서의 고유 식별자입니다. 문서의 마법적 서명으로 생각해보세요.
insertMany() 메서드
한 번에 여러 문서를 추가하고 싶다면 insertMany()
메서드가 유용합니다. 이는 여러 개의 물건을 동시에 띄우는 마법과 같습니다!
문법
db.collection.insertMany([document1, document2, ...])
예제
"Hogwarts" collections에 여러 학생을 추가해보겠습니다:
db.hogwarts.insertMany([
{
name: "Hermione Granger",
house: "Gryffindor",
year: 1,
subjects: [" 수학", "muggle 연구", "고대 문자"]
},
{
name: "Ron Weasley",
house: "Gryffindor",
year: 1,
subjects: ["占星術", "마법 동물 돌봄"]
},
{
name: "Draco Malfoy",
house: "Slytherin",
year: 1,
subjects: [" potion 과학", "어둠의 마법"]
}
])
이 마법은 한 번에 세 명의 학생을 collections에 추가합니다. 효율적이죠?
결과 이해
이 강력한 마법을 사용한 후, MongoDB는 다시 한 번 결과를 제공합니다:
{
"acknowledged": true,
"insertedIds": [
ObjectId("60d5ec9d7c213e8456b1b2d5"),
ObjectId("60d5ec9d7c213e8456b1b2d6"),
ObjectId("60d5ec9d7c213e8456b1b2d7")
]
}
-
acknowledged
: 다시 한 번 마법이 작동했는지 확인합니다. -
insertedIds
: 각 추가된 문서의 고유 식별자 배열입니다.
실용적인 팁과 트릭
-
SPELL 체크(데이터 검증): 문서를 추가하기 전에 항상 두 번씩 확인하세요. 잘못된 필드 이름은 예상치 못한 결과를 초래할 수 있습니다, 마법을 잘못 읊은 것과 같습니다!
-
重複 키: 기존 문서와 같은
_id
를 가진 문서를 추가하려고 하면 MongoDB는 오류를 발생시킵니다. 두 명의 학생이 같은 마법 서명을 가지는 것처럼, 이는 작동하지 않습니다! -
Batch 삽입:
insertMany()
를 사용할 때 하나의 문서가 삽입에 실패하면(예를 들어, 중복 키로 인해) 작업이 중지됩니다. 하지만 오류 이전에 추가된 문서는 collections에 남아 있습니다! -
성능 고려: 문서를 하나씩 추가하는 것은 배치로 추가하는 것보다 느릴 수 있습니다. 많은 문서를 추가해야 한다면
insertMany()
를 사용하는 것이 좋습니다.
삽입 메서드 요약
이제 배운 삽입 메서드의 빠른 참조 표를 제공합니다:
메서드 | 설명 | 사용 사례 |
---|---|---|
insertOne() |
단일 문서 추가 | 단일 문서를 추가할 때 |
insertMany() |
여러 문서 추가 | 여러 문서를 추가할 때 |
젊은 마법사 여러분, 연습이 완벽을 이루는 열쇠입니다. MongoDB의 이 메서드를 자유롭게 실험해보세요. 데이터베이스의 힘을 가지고 있으면서도, 이를 지혜롭게 사용하세요. 데이터베이스가 항상 정리되고 효율적이기를 바랍니다!
Credits: Image by storyset