MongoDB #1 ~ 4

김나현·2025년 4월 1일

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 : 줄바꿈

1) 새로운 Collections 생성해보기

없으면 자동생성, 있으면 사용

  • 1-1)

    만들 db 이름 : use studydb
    db.firstcol.insertOne({a:1})
    ------------ # studydb안 firstcol이라는 collections도 만들고 그안 문서에 저 내용 insert
    show dbs
    그 다음 새로고침 하면 보임

    • Results

  • 1-2)

    db.createCollecitons("이름", {capped:true, size:500}) -------#capped는 사이즈가 넘을 경우 가장 오래된 데이터 자동 삭제

2) Documents 에 더 insert

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 });

3) 조회

Q)이름이 홍길동인 사람을 조회
db.cols.find({name:"홍길동"})

Q)만일 홍길동이 여러명인데 처음 한명만 나오게 하려면
db.cols.findOne({name:"홍길동"})

Q)id만 조회
db.cols.find({age:5}, {_id:1})

4) 배열 조회

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})
  • 그외 nin, all, size

5) slice

db.cols.find({etc : {$ elemMatch : {likenum : 20} }}}, {"etc.likenum": $slice : 1})
// likenum array가 20을 포함하고 있고 해당되는 배열의 첫부분 슬라이스

  • 범위 지정
    $slice: [1,3]

6) Rename

db.firstcol.renamecolloction('')

7) drop

문서 drop시 db.firstcol.drop()
데베 drop시 db.dropDatabase()

8) 상태 확인

  • 7.0부터 사용불가
    db.enableFreeMonitoring
    치고 uri나오면 복사 -> 크롬 주소창 입력
profile
Let's study hard!

0개의 댓글