🔥 생성(Create) - Insert
🔥 읽기(Read) - Search
🔥 수정(Updata) - Update
🔥 삭제(Delete) - Drop
데이터를 생성(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값")
$set
를 사용 ⇢ {$set : {"key":"value"}}
db.employees.updateOne({age:{$gt:20}},{$set:{status:"C"}})
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}})