Backend/MongoDB 5

Mongoose ODM 기초와 간단한 CRUD 구현 코드(Node.js)

1) Mongoose ODM이란? Object Data Modeling MongoDB의 Collection에 집중하여 관리하도록 도와주는 패키지다. Collection을 모델화하여, 관련 기능들을 쉽게 사용할 수 있게 도와준다. Mongoose ODM을 사용하는 이유 - 연결 관리 Node.js 사용 시, 기본 드라이버는 연결 상태를 관리하기 어렵지만, Mongoose를 사용하면 간단하게 데이터베이스와의 연결상태를 관리해준다. - 스키마 관리 스키마를 정의하지 않고 사용할 수 있는 건 NoSQL의 장점이지만, 데이터 형식을 미리 정의해야 코드 작성과 프로젝트 관리에 유용하다. Mongoose는 Code-Level에서 스키마를 정의하고 관리할 수 있게 해준다. - Populate MongoDB는 기본적으로..

Backend/MongoDB 2022.02.26

MongoDB - 고급 활용 기능 이론 위주 (Flask, 집계, 인덱스, 복제 세트, Read-Concern/Write-Concern, 샤드 클러스터)

1) Flask Flask와 연결하기 import pymongo from bson import ObjectId import csv # 일반적으로 필요하진 않음 from flask import Flask, render_template, request, redirect app = Flask(__name__) client = pymongo.MongoClient('localhost', 27017) # 클라이언트 연결 db= client.get_database("MyDB") # 전역변수 설정 col = db.get_collection("post") # 전역변수 설정 Flask와 연결하기 위해서는 flask 모듈들을 임포트 해주어야한다. 연결 후, MongoDB와 html을 이용해 글 목록 조회, 작성, 생성, 읽..

Backend/MongoDB 2022.02.02

MongoDB - 연산자

쿼리의 형식 { : {:,:}, : ... } 필드가 가장 바깥이고, 안쪽에 연산자가 들어간다. 예외적으로 $or, $and, $nor 연산자는 가장 바깥에 쓰인다. { "$or": [ { "name": "hayan" }, { "age": { "$eq": 25 } } ] } 이런식으로 $or 연산자를 사용할 수 있다. 예시 코드에서 $eq 연산자는 해당 값과 일치하는 필드를 찾는다. 점 표기법 BSON 내부의 Object에 접근하기 위한 방법이다. { "name":{"first": "yu", "last": "hayan" }, "age": 25 } { "name.first": "yu" } 위 도큐먼트에서 name의 first 값을 받고 싶으면, 코드의 마지막 줄 처럼 점(.)을 이용하여 접근이 가능하다. ..

Backend/MongoDB 2022.02.02

MongoDB - CRUD

MongoDB에서 CRUD하기 전에 MongoDB의 기본 구조 먼저 알아야한다. Document: 관계형 데이터베이스의 행(row)에 해당한다. Collection: 관계형 데이터베이스의 테이블에 해당한다. Database: 관계형 DB의 테이블과 같은 개념 → Document가 모여 Collection을 이루고, Collection이 모여 Database를 이룸 Pymongo pymongo란 mongoDB를 사용할 수 있게 해주는 파이썬 모듈이다. 다음과 같이 불러온다. import pymongo connection = pymongo.MongoClient("mongodb://localhost:27017/") # 27017은 mongoDB 기본포트 도큐먼트 생성 이번에는 데이터베이스에 접속하여 컬렉션에 ..

Backend/MongoDB 2022.02.01

MongoDB 개요

mongoDB는 범용적으로 사용되는 SQL기반 DB와는 사용법이 조금 다르다. SQL질의없이 사용할 수 있는 데이터베이스로, NoSQL의 한 종류이다. 관계형 데이터베이스인 RDBMS와는 달리, 정보의 형식을 미리 정하지 않는다. 즉, 테이블이 생성되기 전 정보의 형식이 정의되어 있지 않아도 값을 저장할 수 있다. → 전통적인 관계형 데이터베이스 보다 덜 제한적인, 일관성 모델을 제공하는 DB RDBMS와 MongoDB의 차이점 1) RDBMS는 안정성, MongoDB는 확장성과 성능 최적화에 중점 2) RDBMS는 하나의 DBMS로 처리, MongoDB는 분산 컴퓨팅이 기본값 - MongoDB에서 지원하는 분산 컴퓨팅: 복제, 샤딩 복제란? DB를 복사하여 저장 샤딩(%)이란? 데이터를 나누어 저장 e..

Backend/MongoDB 2022.02.01