2 분 소요

**[공지사항]** [개인적인 공부를 위한 내용입니다. 오류가 있을 수 있습니다.]

[NoSQL & 몽고DB(mongodb) - 005]


Studio 3T로 mongoDB 사용하기


localhost위에 마우스를 놓고 오른쪽 버튼을 눌러 shell로 진입한다.



전체 DB 보기



데이터베이스 선택하기: use db이름, db가 존재하지 않는 경우 db 생성을 먼저해야 한다.



선택한 db의 collection 보기 : show collections



collections 내 document 현황 보기



db 상태보기



collection 생성하기[사이즈 지정하기]



생성한 collection에 사이즈 지정 여부 확인하기



생성한 collection의 상태보기



collection 안에 하나의 데이터 입력해보기(insertOne)



collection 안에 여러 데이터를 한번에 입력해보기(insertMany)



저장되어 있는 데이터에서 조건으로 검색해보기

* find : 매칭되는 여러개의 document 전체를 리스트 형식으로 추출

* findOne : 매칭되는 여러개의 document 중 맨 첫번째 document만 추출

* find() 괄호안에 인자가 없기에 모든 document를 가져온다. : db.people.find()

* 전체 document를 가져오는데 항목은 user_id와 status만 추출 : db.people.find({ }, { user_id: 1, status: 1 })

* 자동생성되는 _id를 빼고자 할 때는 _id:0으로 입력하면 된다. : db.people.find({ },{ user_id: 1, status: 1, _id: 0 })

* status가 A인 document만 추출 : db.people.find({ status: "A" })

* status가 A이고 age가 50인(and) document만 추출 : db.people.find({ status: "A", age: 50 })

* status가 A이거나 age가 50인(or) document만 추출($or로 표기) : db.people.find({ $or: [ { status: "A" } , { age: 50 } ] })





저장되어 있는 데이터를 조건으로 검색해서 원하는 정보만 출력해보기



두개의 조건 중 하나의 조건만 충족해도 해당되는 "또는"($or) 조건 사용해보기



>,<, =, != 조건 사용해보기
+ $eq ===> equal
+ $gt ===> '>' ===> greater than
+ $gte ===> '>=' ===> greater than or equal
+ $in ===> in an array
+ $lt ===> '<' ===> less than
+ $lte ===> '<=' ===> less than or equal
+ $ne ===> '!=' ===> not equal
+ $nin ===> none of the values specified in an array.

다양한 검색 예제
* db.people.find({ age: { $gt: 25, $lte: 50 } })
* db.people.find( { age: { $nin: [ 5, 15 ] } } )
* db.people.find( { user_id: /bc/ } )
* db.people.find( { user_id: { $regex: /bc/ } } ) ==> 어디든 bc가 포함된 document
* db.people.find( { user_id: /^bc/ } )
* db.people.find( { user_id: { $regex: /^bc/ } } ) ==> 오직 bc로 시작하는 document
* db.people.find( { status: "A" } ).sort( { user_id: 1 } ) ==> 오름차순
* db.people.find( { status: "A" } ).sort( { user_id: -1 } ) ==> 내림차순
* db.people.count()
* db.people.find().count()
* db.people.count( { user_id: { $exists: true } } )
* db.people.find( { user_id: { $exists: true } } ).count()
* db.people.count( { age: { $gt: 30 } } )
* db.people.find( { age: { $gt: 30 } } ).count()
* db.people.distinct( "status" )
* db.people.findOne()
* db.people.find().limit(1)




작거나 같은($lte) 조건 사용해보기



보다 큰($gt) 조건 사용해보기



두개의 조건 동시에 사용해보기(~와 같고($eq) status는 A인)



작고($lt) status는 A인 조건 사용해보기



특정 조건(distinct) 표기하기



bc로 시작하는 user_id 검색하기



특정 조건에 해당하는 데이터를 변경하기
* { $set: { } } : field값 설정
* { $inc: { } } : 괄호안의 값만큼 field 값을 증감
* updateOne : 매칭되는 여러개의 document 中 첫번째 document를 업데이트
* updateMany : 매칭되는 list of document(전체)를 업데이트

Document 삭제
* removeOne : 매칭되는 여러개의 document 中 첫번째 document를 삭제
* removeMany : 매칭되는 list of document(전체)를 삭제




변경한 데이터가 정상적으로 잘 반영되었는지 확인해보기





댓글남기기