티스토리 뷰
개인 공부를 위하여 몽고디비 공식문서를 한글로 번역한 글입니다.
> 단일 도큐먼트 삽입
db.collection.insertOne() // 컬렉션에 단일 도큐먼트를 삽입한다
다음 예시는 inventory 컬렉션에 새 도큐먼트를 삽입한다. 도큐먼트가 _id 필드를 명시하지 않는다면, 몽고디비가 새 도큐먼트에 _id 필드를 ObjectId값으로 추가해준다.
db.inventory.insertOne(
{ item: "canvas", qty: 100, tags: ["cotton"], size: { h: 28, w: 35.5, uom: "cm" } }
)
insertOne()은 새로 삽입된 도큐먼트의 _id 필드 값을 포함하는 도큐먼트를 반환한다.
{
"acknowledged": true,
"insertedId": ObjectId("5d78b85253767d2b67b07d68")
}
> 다중 도큐먼트 삽입
db.collection.insertMany() // 컬렉션에 여러 도큐먼트를 삽입. 메서드에 도큐먼트들의 배열을 전달한다.
다음 예시는 inventory 컬렉션에 세 개의 새 도큐먼트들을 삽입한다. 도큐먼트들이 _id 필드를 명시하지 않는다면, 몽고디비가 각 도큐먼트에 _id 필드를 ObjectId 값으로 추가해준다.
db.inventory.insertMany([
{ item: "journal", qty: 25, tags: ["blank", "red"], size: { h: 14, w: 21, uom: "cm" } },
{ item: "mat", qty: 85, tags: ["gray"], size: { h: 27.9, w: 35.5, uom: "cm" } },
{ item: "mousepad", qty: 25, tags: ["gel", "blue"], size: { h: 19, w: 22.85, uom: "cm" } }
])
insertMany()는 새로 삽입된 도큐먼트들의 _id 필드 값을 포함하는 도큐먼트를 반환한다.
{
"acknowledged": true,
"insertedIds": [
ObjectId("5d78bc9d60ce9043b04f3ba0"),
ObjectId("5d78bc9d60ce9043b04f3ba1"),
ObjectId("5d78bc9d60ce9043b04f3ba2")
]
}
> 삽입 동작
- 컬렉션 생성
- 현재 해당 컬렉션이 존재하지 않는다면, 삽입 작업은 컬렉션을 생성할 것이다.
- _id 필드
- 몽고디비에서, 컬렉션에 저장된 각 도큐먼트는 유일한 primary key 역할을 하는 _id 필드를 필요로 한다. 삽입된 도큐먼트가 _id 필드가 생략되었다면, 몽고디비 드라이버가 자동으로 _id 필드를 위해 ObjectId를 생성해준다.
- 이는 upsert: true를 이용한 업데이트 작업을 통하여 삽입된 도큐먼트들에게도 또한 적용된다.
- 원자성
- 몽고디비에서 모든 쓰기 작업들은 단일 도큐먼트 레벨에서 원자적이다.
728x90
'dev > mongodb' 카테고리의 다른 글
[번역] MongoDB Aggregation / 어그리게이션, 집합, 집계 (0) | 2019.10.03 |
---|---|
[번역] MongoDB Delete Documents / 도큐먼트 삭제 (0) | 2019.09.14 |
[번역] MongoDB Update Documents / 도큐먼트 업데이트 (0) | 2019.09.14 |
[번역] MongoDB Query Documents / 도큐먼트 쿼리 (0) | 2019.09.14 |
MongoDB / NoSQL 이란? (0) | 2019.09.12 |
댓글