https://www.youtube.com/watch?v=MXgoMF0g6lk&list=PLrqBTipDm9KSdW77bHEpdUQNWBjZGsW1d&index=2 학습
DB 안 -> collections 안-> documents
여기선
(DB) admin, config, local, studydb -> (Collections) fistcol, startup_log -> (documents) startup_log안 3개의 문서 -> (field 필드) _id, hostname 등
shift+enter : 줄바꿈
없으면 자동생성, 있으면 사용
만들 db 이름 : use studydb
db.firstcol.insertOne({a:1})
------------ # studydb안 firstcol이라는 collections도 만들고 그안 문서에 저 내용 insert
show dbs
그 다음 새로고침 하면 보임
- Results
db.createCollecitons("이름", {capped:true, size:500}) -------#capped는 사이즈가 넘을 경우 가장 오래된 데이터 자동 삭제
documents가 저장된 데이터 , 관계형 db의 테이블이라 생각
1-1) insertOne
db.firstcol.insertOne({name:"홍길동", age:10 , t_f:true,
assstr:[{ 국적: "한국", 도시: "서울"} , { 직업 : "육상선수", 경력: "3년"}]
})
*Results
1-2) insertMany
db.firstcol.insertMany([
{ name: "김철수", age: 20 },
{ name: "이영희", age: 25 },
{ name: "박민준", age: 30 }
]);
vs
db.firstcol.insertOne({ name: "홍길동", age: 10 });
Q)이름이 홍길동인 사람을 조회
db.cols.find({name:"홍길동"})
Q)만일 홍길동이 여러명인데 처음 한명만 나오게 하려면
db.cols.findOne({name:"홍길동"})
Q)id만 조회
db.cols.find({age:5}, {_id:1})
Q)배열 조회 , 국적인 한국
db.cols.find({ assstr: { $elemMatch: { 국적: "한국" } } });
Array에서
- 배열 안에 포함되면 검색
db.cols.find({etc : {$ elemMatch : {likenum : 20} })
index번호 안다고 가정하고 조회
likenum 배열의 첫 번째 요소가 20의 경우
db.cols.find({etc : {$ elemMatch : {"likenum.0" : 20} })
index번호를 모른다고 가정하고 조회
db.cols.find({etc : {$ elemMatch : {"likenum" : {$in : [20] } } })
결과는
으로 뜨는데 원하는 요소만 보고 싶을땐- db.cols.find({etc : {$ elemMatch : {likenum : 20} }}}, {"etc.$": true})
db.cols.find({etc : {$ elemMatch : {likenum : 20} }}}, {"etc.likenum": $slice : 1})
// likenum array가 20을 포함하고 있고 해당되는 배열의 첫부분 슬라이스
- 범위 지정
$slice: [1,3]
db.firstcol.renamecolloction('')
문서 drop시 db.firstcol.drop()
데베 drop시 db.dropDatabase()
- 7.0부터 사용불가
db.enableFreeMonitoring
치고 uri나오면 복사 -> 크롬 주소창 입력