반응형

📢설치환경

NodeJS : 윈도우

MongoDB : Centos6.10 (6.9 다음버전임)

(필자는 데이터베이스를 별도의 서버로 개발을 합니다)

 

📋MONGO DB 설치 (CentOS 6)

Mongo DB 설치

yum 으로 설치시 2.16 버전이 설치되고 RPM 설치시 4.0 버전으로 설치할수 있따.

yum install mongodb mongodb-server
rpm -ivh https://repo.mongodb.org/yum/redhat/6/mongodb-org/4.0/x86_64/RPMS/mongodb-org-server-4.0.7-1.el6.x86_64.rpm

yum 명령어로 설치할경우 mongodb 2.16 으로 설치가된다. node와 버전이 맞지않으면 아래와 같은 에러가 날수있다.

reports wire version 0, but this version of Node.js Driver requires at least 2 (MongoDB2.6).

 

📋 설치로그 2019-03-28

위처럼 설치하면 server는 깔리는대 client가 안깔려서 리눅스에서 mongo 명령어가 안먹힌다. 공식문서를 본 결과의 설치방법.

1. vi 편집기로 아래 글 을 넣어준다.

$ vi /etc/yum.repos.d/mongodb-org-4.0.repo

//아래 글을 복사해서 넣어준다.

[mongodb-org-4.0]
name=MongoDB Repository
baseurl=https://repo.mongodb.org/yum/redhat/$releasever/mongodb-org/4.0/x86_64/
gpgcheck=1
enabled=1
gpgkey=https://www.mongodb.org/static/pgp/server-4.0.asc

 

2. yum 으로 install 한다

yum install -y mongodb-org

 

Mongo DB 설치 확인

[root]# service mongod status
mongod is stopped
[root@ ~]# mongod --version
[root@ ~]# mongo --version
>
db version v4.0.7
git version: 1b82c812a9c0bbf6dc79d5400de9ea99e6ffa025
OpenSSL version: OpenSSL 1.0.1e-fips 11 Feb 2013
allocator: tcmalloc
modules: none
build environment:
    distmod: rhel62
    distarch: x86_64
    target_arch: x86_64

 

Mongo DB 서비스 시작

[root@zetawiki ~]# service mongod start //stop , restart
Starting mongod:                                           [  OK  ]

 

▼ Mongo DB 외부 접속 허용

아래 bind_ip 를 0.0.0.0 으로 바꿔주자

vi /etc/mongodb.conf

##
### Basic Defaults
##
bind_ip = 127.0.0.1   <<------ 이부분을 0.0.0.0 으로 바꿔주자
port = 27017
fork = true
pidfilepath = /var/run/mongodb/mongodb.pid
logpath = /var/log/mongodb/mongodb.log
dbpath =/var/lib/mongodb
journal = true
.........................

 

📋 NODE JS -MongoDB 연결

MongoDB 패키지 설치 (mongoose)

npm install mongoose

요약 : mongoose 는 ODM 이다. Spring 의 iBtis 같은놈

Mogoose는 Node.js와 MongoDB를 위한 ODM(Object Data Mapping) library이다. Java 기반의 Hibernate. iBatis 등의 ORM(Object Relational Mapping)과 유사한 개념이다.

ODM은 데이터베이스와 객체지향 프로그래밍 언어 사이 호환되지 않는 데이터를 변환하는 프로그래밍 기법입니다. 즉 MongoDB 에 있는 데이터를 여러분의 Application에서 JavaScript 객체로 사용 할 수 있도록 해줍니다.

ODM의 사용은 코드 구성이나 개발 편의성 측면에서 장점이 많다. 호환성이 없는 프로그래밍언어(JavaScript) Object와 MongoDB의 데이터를 Mapping하여 간편한 CRUD를 가능하게 한다.

필요에 따라 확장 및 변경이 가능한 자체 검증(Validation)과 타입 변환(Casting)이 가능하며 Express와 함께 사용하면 MVC Concept 구현이 용이하다.

▼ MongoDB 패키지 설치 (mongoose)

npm install dotenv

 

요약 : db.properties 같은 db환경설정 을 저장하고있는 파일

node.js 로 개발을 하면서, 포트, DB 관련 정보 등 전역으로 필요한 여러 정보들이 존재한다. node.js 에서는 dotenv를 통해 환경변수 파일을 외부에 만들고, 관리할 수 있다. 특히, 깃허브 등에 오픈소스로 프로젝트를 공개할때, DB 계정 정보를 소스코드 내에 하드코딩하지 않고, 외부 환경변수 파일에 작성하고, .gitignore 을 통해 제외하면 안전하다.

 

📋 MongoDB 연결 테스트

 정상 연결시 Connected to DB 가 콘솔 출력 , 에러시 에러로그와 같이 에러출력. 아래 파일을 node로 실행시키면 된다.

 
const mongoose = require("mongoose");
mongoose.connect("mongodb://ip주소:port/we-tube",
    {
        useNewUrlParser:true,
        useFindAndModify: false
    });

    const db = mongoose.connection;
    const handleOpen = () => console.log("Connected to DB");
    const handleError = error => console.log(`Error on DB Connection:${error}`);
    db.once("open",handleOpen);
    db.on("error",handleError);

 

📋 MongoDB 설치 경로

▼ 내용

mongodb의 설정파일은 /etc/mongod.conf 경로에 있고

init스크립트는 /etc/rc.d/init.d/mongod 에 있습니다.

데이터파일은 /var/lib/mongo 경로에 저장되고

로그파일은 /var/log/mongo 여기에.

 

📋 MongoDB PORT 사용중인지 확인

lsof -i :27017

 

📋 dotenv 설정

dotenv 로 url 을 별도의 파일로 뺴낼수 있다. 스프링의 properties 와 비슷

test.js

lsof -i :27017

 

ABCDEFG.env

 

MONGO_URL = "mongodb://121.66.142.174:27017/we-tube"

 

 

 

 

반응형

'데이터베이스 > Mongo DB' 카테고리의 다른 글

MongoDB - 기본 명령어  (0) 2022.01.07
반응형

📢MongoDB - 기본 명령어

MongoDB 는 JAVASCRIPT 기반으로 만들어진 NO-SQL 이다.

그래서 기존 알고있는 RDBS 랑은 명령어가 다르다.

SQL 은 Structured query language

MongoDB 는 document 기반 nosql db

📋MONGO DB 명령어 사용법

 

 몽고db 들어가기

mongo

 

▼ 현재 저장되있는 데이터베이스 이름 목록 확인

>show dbs
////커맨드 내용/////
admin    0.000GB
config   0.000GB
local    0.000GB
we-tube  0.000GB

 

▼ 도움말

>help

 

▼ 데이터베이스 접속 (사용)

use we-tube

 

▼ 데이터베이스에 현재 있는 모델 확인

 

 show collections

 

▼ 데이터베이스에 모델 내용 확인

db.[모델명].find({})

 

▼ 데이터베이스에 모델 삭제

> db.[모델명].remove({})

 

반응형

'데이터베이스 > Mongo DB' 카테고리의 다른 글

Mongo DB - MongoDB 설치법 NODE 연결방법  (0) 2022.01.07

+ Recent posts