01.MongoDB 기초 - CRUD 문법

ID짱재·2021년 2월 24일
0

MongoDB

목록 보기
3/8
post-thumbnail

🌈 CRUD 문법

🔥 생성(Create) - Insert

🔥 수정(Updata) - Update

🔥 삭제(Delete) - Drop


1. 생성(Create) - Insert

  • 데이터를 생성(create)할 때는 insertOne() 또는 insertMany() 메서드 사용

  • 생성하기 전 collection을 DB를 지정해 연결("use [데이터베이스명]")시키고, collection을 생성("db.createCollection("[컬렉션명]")")해두어야 함

  • key값은 ""해줘도되고 안해줘도 상관 없으나, value값은 문자면 "", 숫자면 그냥 적으면됨

    1) insertOne() : db.[컬렉션명].insertOne([JSON형식 데이터 입력])

    • 🔍 db.users.insertOne({name:"jaewon", age:20, status:"pending"})
    • db.[컬렉션명].find() 로 입력된 데이터 확인 가능

    2) insertMany() : db.[컬렉션명].insertMany([list 형식으로 JSON형식 데이터 입력])

    • list형식 안에 요소로 여러 개의 데이터를 넣어 한번에 생성할 수 있음
    • 🔍 db.users.insertMany([{JSON1}, {JSON2}, {JSON3}....])

    3) sql구문과 비교


  • 새로운 컬렉션 생성 및 데이터 삽입

    1) [컬렉션명]의 모든 데이터 가져오기 : db.[컬렉션명].find()

    • 🔍 db.employees.find()
    • 🔍 db.employees.findOne() 은 첫번째로 찾은 1개의 데이터만 가져옴

    2) 모든 데이터에서 일부 key값을 가져오기: db.[컬렉션명].find({},{key:1,key:1..})

    • 🔍 db.employees.find({},{user_id :1, status :1})
    • 앞의 {}는 모든 데이터를 대상한다는 의미히고, 뒤에 {}는 원하는 "key값:1"을 입력

    3) _id 제외하고 일부 key 가져오기 : db.[컬렉션명].find({},{key:1,_id:0..})

    • key값 중 자동으로 생성하는 고유식별 key인 "_id"는 항상 Defaulf로 자동 출력됨
    • "_id"를 제외하고 원하는 key만을 출력하고 싶을 때는 {}안에 "_id:0"을 입력
    • 🔍 db.employees.find({},{user_id :1, status :1, _id :0})

    4) 모든 데이터에서 and조건으로 데이터 가져오기: db.[컬렉션명].find({key:value},{key:value},{key:value})

    • 🔍 and 조건 : db.employees.find({age:50, status:"A"})
    • 뒷 부분인 {}을 생략하면 전체 조건에 해당되는 document의 모든 key가 출력
    • 즉, db.employees.find({age:50, status:"A"},{user_id:1,age:1,status:1})와 같음
    • 일부 key만 조회 : db.employees.find({age:50, status:"A"},{age:1, status:1, _id:0})

    5) 모든 데이터에서 or조건으로 데이터 가져오기: db.[컬렉션명].find({$or:[{key:value},{key:value}]})

    • 🔍 or 조건 : db.employees.find({$or:[{age:50},{status:"B"}]})
    • age가 50이거나 또는 status가 B인 documents만 조회

    6) 비교 문법

    • $eq(=) : 지정된 key값에서 조건과 같은 value를 가진 데이터를 모두 가져오기
    • $gt(>) : 지정된 key값에서 조건 보다 큰 value를 가진 데이터를 모두 가져오기
    • $gte(>=) : 지정된 key값에서 조건 보다 크거나 같은 value를 가진 데이터를 모두 가져오기
    • $in : 지정된 key값에서 array([])에 포함된 value를 가진 데이터를 모두 가져오기
    • $lt(<) : 지정된 key값에서 조건 보다 작은 value를 가진 데이터를 모두 가져오기
    • $lte(<=) : 지정된 key값에서 조건 보다 작거나 같은 value를 가진 데이터를 모두 가져오기
    • $ne(!=) : 지정된 key값에서 조건과 일치하지 않은 value가 존재하는 document 모두 가져오기
    • $nin : 지정된 key값에서 array([])에 포함되지 않은 value를 가진 데이터를 모두 가져오기!
    • /[문자열]/ : 지정된 key값에서 해당 문자열을 포함한 모든 데이터를 출력
    • /^[문자열]/ : 지정된 key값에서 해당 문자열로 시작하는 모든 데이터를 출력

    7) 해당 key의 value 종류 가져오기 : db.[컬렉션명].distinct("key값")


3. 수정(Updata) - Update

  • db.[컬렉션명].updataOne() - 맨 처음으로 매칭되는 1개의 document 수정
  • document의 수정은 $set를 사용 ⇢ {$set : {"key":"value"}}
  • 🔍 db.employees.updateOne({age:{$gt:20}},{$set:{status:"C"}})
  • db.[컬렉션명].updataMany() - 매칭되는 모든 document 수정
  • 🔍 db.employees.updateMany({age:{$gt:40}},{$set:{status:"D"}})

    1) $set 과 $inc

    • $set : field 값 세팅
    • $inc : field 값 증가 또는 감소
    • key가 status = "B"인 document를 모두 찾아 age를 10씩 증가시켜라
    • 🔍 db.employees.updateMany({status:"B"},{$inc:{age:10}})

4. 삭제(Delete) - Drop

  • db.[컬렉션명].deleteOne({key:value}) - 맨 처음으로 매칭되는 1개의 데이터(document) 삭제
  • 🔍 ``db.employees.deleteOne({status:"A"})``` ⇢ 첫번째 {status:"A"} 삭제
  • db.[컬렉션명].deleteMany({key:value}) - 맨 처음으로 매칭되는 1개의 데이터(document) 삭제
  • 🔍 ``db.employees.deleteMany({status:"A"})``` ⇢ 모든 {status:"A"} 삭제
  • db.[컬렉션명].deleteMany({}) - 해당 컬렉션의 document 모두 삭제
  • 🔍 ``db.employees.deleteMany({})``` ⇢ 데이터(document) 모두 삭제
profile
Keep Going, Keep Coding!

0개의 댓글