MongoDB 정리

dev.log·2022년 1월 28일

MongoDB

NOSQL 데이터베이스의 종류 중 하나로 도큐먼트 기반의 데이터베이스

MongoDB의 특징

아틀라스(Atlas)라는 툴을 이용하여 클라우드에 데이터베이스를 생성한다.
아틀라스는 GUI와 CLI로 데이터를 시각적으로 표현, 분석, 빌드 등 여러 작업을 수행합니다.
클러스터를 배포할 수 있고 서버에 데이터를 저장합니다.

클러스터(Cluster)

인스턴스(데이터베이스)의 모임을 클러스터라고 하며 하나의 시스템처럼 작동한다.
클러스터는 각각의 인스턴스에 대해 복제본을 가지고 있으며 이 복제본이 모음을 레플리카 세트라고 함
클러스터를 이용하여 배포를 하면 자동으로 레플리카 세트를 생성됩니다.

도큐먼트(Document)

MongoDB에서 도큐먼트는 필드-값(Field - Value) 쌍 으로 저장하고 구성하는 객체를 말합니다.

{
	<filed> : <value>
}

MongoDB는 도큐먼트가 모여 하나의 컬렉션을 이루고 데이터베이스에는 많은 컬렉션을 가지고 있습니다.

JSON, BSON

MongoDB는 기본적으로 JSON 형식으로 도큐먼트를 표현합니다.
그래서 필드는 쌍따옴표("")로 감싸야 하며, 필드-값 쌍은 쉼표(,) 구분하며,
중괄호({})로 도큐먼트가 시작하고 끝나야 합니다.

{
	"_id" : "128763889",
    "name" : "kimcoding",
    "count" : 5
}

JSON 형식은 읽기 쉽고, 개발자들이 사용하기 편리합니다.
하지만 파싱이 느리고, 메모리 사용이 비효율적이고, 사용할 수 있는 데이터 타입도 제약이 많습니다.
이러한 문제점을 해결하기위해 일부 상황에서 BSON 형식을 사용합니다.
BSON은 빠르고, 메모리 사용이 효율적이고, 다양한 데이터 타입을 사용할 수 있습니다.

MongoDB 문법들

데이터를 JSON으로 가져오기(MongoDB 데이터베이스로) : mongoimport
데이터를 JSON으로 내보내기 : mongoexport

데이터를 BSON으로 가져오기 : mongorestore
데이터를 BSON으로 내보내기 : mongodump

도큐먼트를 삽입하기 : [데이터베이스].[컬렉션].insert(조건)
모든 도큐먼트를 조회하기 : [데이터베이스].[컬렉션].find(조건)
하나의 도큐먼트를 조회하기 : [데이터베이스].[컬렉션].findOne(조건)
하나의 도큐먼트를 업데이트하기 : updateOne
모든 도큐먼트를 업데이트하기 : updateMany
도큐먼트 하나를 삭제 : deleteOne
모든 도큐먼트를 삭제 : deleteMany

비교연산자

eq:EQualto(=)eq : EQual to (=)ne : Not Equal to(!=)
gt:GreaterThan(>)gt : Greater Than (>)lt : Less Than(<)
gte:GreaterThanorEqualto(>=)gte : Greater Than or Equal to(>=)lte : Less Than or Equal to(<=)

논리연산자

and:조건의AND연산and : 조건의 AND 연산or : 조건의 OR 연산
nor:조건의nor연산(해당하는모든조건을하나라도만족하지않는연산)nor : 조건의 nor 연산(해당하는 모든 조건을 하나라도 만족하지 않는 연산)not : 조건의 not 연산(주어진 조건과 일치하지 않는가)

표현연산자

$expr : 도큐먼트 내의 필드를 비교하는 데 사용
필드 앞에 $가 붙으면? : 필드의 값을 참조하는 연산입니다.

배열연산자

$push : 배열의 마지막 위치에 일리먼트를 넣습니다.
배열이 아닌 필드에 사용했을 경우, 필드의 타입을 배열로 바꿉니다.

Projection?

특정 문법을 수행할때 첫번째는 인자는 수행할 연산의 조건, 두번째 인자는 projection이 옵니다.
연산시 projection이 포함되면, projection에 포함된 필드만 결과로 출력됩니다.

$elemMatch?

배열의 요소에 접근할 경우 elemMatch를 사용하여 배열의 요소에 접근합니다.

profile
개발 공부 작성 블로그 입니다.

0개의 댓글