MongoDB - CRUD (1)
몽고DB의 데이터 유형은 BSON 이라고 불립니다.
BSON은 MongoDB에서 문서를 저장하고 원격 프로시저를 호출 하는데 이진 직렬화 형식을 사용합니다.
간단히 말하자면 BSON은 binary+json이라고 볼 수 있습니다.
오늘 보실 예제가 json 형태인 것을 확인 하실 수 있을 것 입니다.
자 그러면 시작하겠습니다.
CRUD - (CREATE)
db.collection.insertOne() - 한개의 문서를 컬렉션에 저장할때 사용합니다.
db.collection.insertMany() - 여러개의 문서를 컬렉션에 저장할때 사용합니다.
db.collection.find() - 해당 조건에 해당하는 문서를 찾아줍니다.
db.collection.insertOne()을 통해 컬렉션에 데이터를 하나 넣을 수 있습니다.
만약에 mysql을 하셨던 분이라면 컬렉션을 테이블로 보시면 편할 것 같습니다.
그래서 저는 inventory라는 컬렉션에 데이터를 하나 넣어보겠습니다.
db.inventory.insertOne(
{ item: "canvas", qty: 100, tags: ["cotton"], size: { h: 28, w: 35.5, uom: "cm" } }
)
넣고난 후 저희의 몽고 DB사이트에 들어가면 컬렉션에 데이터가 들어간 것을 확인 할 수 있습니다.
db.inventory.find( { item: "canvas" } )
이제 쉘에서 한번 저희가 넣은 데이터가 잘 찾아지는지 한번 확인해 보겠습니다.
저희는 item이름을 canvas로 줬었습니다.
그래서 db.collection.find()를 통해 해당 값을 가지고 있는 것이 있는지 찾아보면 위와 같이 결과가 나온 것을 확인 할 수 있습니다.
이번에는 여러개의 데이터를 넣어보겠습니다.
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" } }
])
아래와 같이 여러개의 데이터가 들어간 것을 확인 할 수 있습니다.
아 그리고 find에 {} 빈 값을 전달하면 모든 데이터를 불러 올 수 있습니다.
근데 여기서 보시면 저희가 넣지 않았는데 들어가 있는 데이터가 있습니다.
무엇일까요??
바로 _id 값입니다.
이 값은 mongoDB에서 자동으로 생성해주는 값입니다.
즉, 데이터 하나하나에 고유한 ID를 부여해 주는 역할을 합니다.
Read 부분은 Update와 Delete를 하고 나서 게시를 하는 것이 낫다고 생각하여
다음 포스트에선 Update에 대해 알아보겠습니다.