MongoDB 기초

Alex·2021년 1월 22일
0

mongodb

목록 보기
1/1

MongoDB

  • 오픈소스 문서지향(Document Oriented) 크로스 플랫폼 데이터베이스

    문서지향 데이터베이스
    MongoDB는 유연하며 확장성이 높은 문서 지향의 데이터베이스입니다. RDB에서 사용했던 스키마의 제약이 없고 자유로우면 BSON(Binary JSON)형태로 각 문서가 저장됩니다. 또한, 기존 RDB에서 지원하지 않았던 형태로도 저장이 가능합니다. RDB에서 사용했던 JOIN 기능이 필요 없이 이해하기 쉬운 형태로 데이터를 저장할 수 있습니다.

도큐먼트

{
    "id": "aslkf87sdljk",
    "name": "Elice",
    "age": 12
}
  • 위는 하나의 도큐먼트
  • RDB에서의 Row(튜플)과 동일한 개념
  • 각 도큐먼트는 id를 가지고 있으며 유일함 (Primary Key와 동일한 개념)
  • 스키마로 정해진 것이 없어서 위 코드에서 phoneNum이나 email을 추가해 도큐먼트를 생성해도 문제없이 동작함

컬렉션

  • 도큐먼트의 그룹 개념
  • RDB에서 테이블과 같은 개념
  • 스키마를 가지고 있지 않는다는 특징이 있음

데이터베이스



MongoDB Create

1. 데이터베이스를 생성할 포트 연결하기

  • 파이썬에서 MongoDB와 상호작용 하기 위해서는 pymongo 라이브러리를 사용
  • pymongo를 import한 뒤 아래의 코드를 이용해 MongoDB를 연결
  • 27017은 MongoDB를 연결할 때 디폴트로 사용하는 포트 번호

2. 데이터베이스 생성하기

  • MongoDB가 연결된 객체를 이용해 데이터베이스를 생성
  • 객체의 변수명이 connection이라고 할 때, 데이터베이스를 생성하기 위해서는 아래의 코드처럼 작성

3. Collection 생성

  • MongoDB에서 컬렉션을 만들려면 데이터베이스를 사용하고 만들려는 컬렉션의 이름을 지정해야 함
  • 위에서 생성한 db 변수로 컬렉션을 생성하기 위해서는 아래의 코드처럼 작성


MongoDB Read

Find One

  • MongoDB의 컬렉션에서 데이터를 선택하려면 find_one()메소드를 사용
  • Collection에 find_one() 메소드를 이용하면 하나의 데이터만 출력할 수 있으며, 매개변수를 이용하여 특정 데이터를 찾을 수 있음

    예시
    print(col.find_one({"title": "Romeo and Juliet"}))
    title이 Romeo and Juliet인 책의 정보를 출력하는 코드

Find All

  • find() 메소드는 구조화되지 않은 방식으로 모든 도큐먼트를 표현
  • MongoDB의 테이블에서 데이터를 선택하려면 find()메소드를 사용
  • find()메소드를 사용하면 선택 항목의 모든 항목을 출력
  • 컬렉션.find()을 통해 반환되는 것은 MongoDB의 Cursor객체
  • 이 Cursor객체를 이용해서 데이터, 즉 도큐먼트를 확인
  • 모든 도큐먼트를 보기 위해서 반복문을 이용할 수 있음

pprint

  • 위에서 다루었던 메소드를 사용하여 보고자 하는 데이터를 형식적으로 출력하고 싶을 때 pprint()메소드를 사용하여 출력


MongoDB Insert

  • 생성된 컬렉션에 도큐먼트를 생성하는 방법

1. insert_one() 메소드 사용하여 생성하기

  • insert_one(): 데이터를 삽입할 때 사용하는 함수이며 매개변수로 딕셔너리를 넘겨줌
  • inserted_id: 삽입된 데이터의 id를 확인할 수 있음

2. insert_many()메소드 사용하여 생성하기

0개의 댓글