April 13, 2022
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(전체)를 삭제
변경한 데이터가 정상적으로 잘 반영되었는지 확인해보기
댓글남기기