이 장에서는 몽고 셸을 사용하여 MongoDB에 문서 데이터를 삽입하는 방법을 소개합니다.
단일 문서 삽입
db.collection.insertOne()
메서드는 컬렉션에 단일 문서를 삽입하는 데 사용됩니다.
문서가 _id
필드를 지정하지 않는 경우, MongoDB는 자동으로 _id
필드에 고유한 ObjectId
를 생성합니다.
참고:
ObjectId
는 MongoDB의 내장 고유 ID 생성기로 ID를 생성하는 데 사용됩니다.
예시: 인벤토리 컬렉션에 문서를 삽입합니다:
db.inventory.insertOne(
{ item: "캔버스", qty: 100, tags: ["면"], size: { h: 28, w: 35.5, uom: "cm" } }
)
결과:
{
"acknowledged" : true,
"insertedId" : ObjectId("609bf11dfc901345cafc438a")
}
삽입이 성공하면 primary key를 반환합니다. insertedId
필드는 MongoDB에 의해 자동으로 생성된 고유한 ID입니다. 인벤토리 컬렉션이 없는 경우 자동으로 생성됩니다.
삽입된 문서 데이터를 조회합니다:
> db.inventory.find( { item: "캔버스" } )
{ "_id" : ObjectId("609bf11dfc901345cafc438a"), "item" : "캔버스", "qty" : 100, "tags" : [ "면" ], "size" : { "h" : 28, "w" : 35.5, "uom" : "cm" } }
find
메서드를 사용하여 "item"이 "캔버스"인 문서 데이터를 찾기 위해 쿼리 조건을 입력합니다.
다중 문서 삽입
db.collection.insertMany()
메서드를 사용하여 컬렉션에 여러 문서를 삽입할 수 있습니다.
예시:
insertMany
메서드에 배열을 전달하여 세 개의 문서 데이터를 삽입합니다:
db.inventory.insertMany([
{ item: "저널", qty: 25, tags: ["빈", "빨강"], size: { h: 14, w: 21, uom: "cm" } },
{ item: "매트", qty: 85, tags: ["회색"], size: { h: 27.9, w: 35.5, uom: "cm" } },
{ item: "마우스 패드", qty: 25, tags: ["젤", "파랑"], size: { h: 19, w: 22.85, uom: "cm" } }
])
반환 값:
{
"acknowledged" : true,
"insertedIds" : [
ObjectId("609bf30ffc901345cafc438b"),
ObjectId("609bf30ffc901345cafc438c"),
ObjectId("609bf30ffc901345cafc438d")
]
}
새로 삽입된 세 문서의 ID를 반환합니다.
삽입 동작
컬렉션 생성
MongoDB에서는 미리 컬렉션을 생성할 필요가 없습니다. 처음으로 데이터를 삽입할 때, 컬렉션이 없으면 자동으로 생성됩니다.
_id 필드
MongoDB에서 컬렉션에 저장된 모든 문서는 주요 키로 작용하는 고유한 _id
필드를 가지고 있습니다. 삽입된 문서가 _id
필드를 생략하는 경우, MongoDB 드라이버가 자동으로 _id
필드에 ObjectId
를 생성합니다.
원자성
MongoDB의 모든 쓰기 작업은 단일 문서 수준의 원자적 작업입니다.