mongoDB / 설치 / mongoose

길고 꾸준하게·2022년 5월 20일
0

받아라 2연속 포스트

1- 설치(Install)

https://www.mongodb.com/docs/manual/administration/install-community/
몽고디비는 무료서버인 커뮤니티서버, 구독전용인 엔터프라이즈 서버가있는데
당~~~연히 커뮤니티서버로 설치할거고 해당 OS에맞게 설치방법이 나와있다.

2- mongoShell

Shell이 뭔데요

키보드로 명령을 내려서 운영체제가 역할을 수행할수 있게 하는 프로그램

이라고 정리하자. 운영체제의 종류가 다양한만큼 Shell도 다양한 종류가 있을거다.


아래는 mongoshell


터미널에 "mongo"를 타이핑하면 이렇게 몽고쉘이나온다. 몽고디비 설치시 자동으로 설치된다.
근데 위에 mongo쉘이 mongosh로 대체될거라고 경고문이뜨는데 일단 무시했다. connect부분의 주소와 mongoose를 이용해 javascript코드를 가지고 mongoDB와 상호작용할거다.

3- mongoose

MongoDB를 위한 Object Data Modelling(ODM)

Object Data Modelling

DB의 데이터셋을 속성/값을 할당한 Object로 취급하는 데이터모델.

그렇게 Object로 취급해서 js파일 내부에 코드를 작성하고 그 코드로
DB와 (여기서는 MongoDB겠지?) 상호작용 할 수 있게 하는 것 같다.

4- connect

import mongoose from "mongoose" 
//바벨덕에 es6 모듈문법 쓸수있는거 까먹지말고 없다면 기존 require문 써야겠지

mongoose.connect("url in mongoshell/dbname")

const db = mongoose.connection;

db.on("error",onError);
db.once("open",onOpen);
  • mongoose.connect()
    mongoDB주소와 mongoose를 연결시키는 작업. 추후 model.save()라는 메서드를 이용해 db안에 collection을 저장할건데 dbName은 그저장될 db의 이름을 정해준다.

  • mongoose.connection
    mongoose.connections[0]과 같은코드다
    connections는 현재 연결된 모든 커넥션을 배열로 리턴하고 그중 0번째 연결과 상호작용 하게하는것같다.

  • .on() / .once()
    mongoose에는 나와있지 않은 connection메서드 여서 한참 찾았는데.
    mongoose.connection()은 Node의 EventEmitter를 상속한단다.
    그래서 Node문서쪽에 해당 메서드에 대한 설명이 있다.
    on은 계속 해당 이벤트를 리슨하는 리스너고
    once는 한번만 해당 이벤트를 리슨한다.

  • "error" "open"
    mongoose 문서에 여러 connection 이벤트가 있는데 그중 두녀석이다.
    말그대로 error는 연결에 문제가 생겼을때 발생하는 이벤트고,
    open은 연결시에 생기는 이벤트
    (각 해당이벤트 발생시 2번째인자의 콜백함수를 실행하는건 많이 보던 패턴이다)
    https://mongoosejs.com/
    https://www.techopedia.com/definition/30736/object-data-model

profile
작은 나의 개발 일기장

0개의 댓글