mongodb 강의

Installation

installation on ubuntu

먼저 다음과 같이 mongodb가 설치되어 있는지 확인한다.
mongod는 서버, mongo는 클라이언트 이다.

1
2
mongod --version
mongo --version

만약 설치가 되어있지 않다면 다음 명령어로 설치를 진행한다.

1
2
3
4
5
sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv 2930ADAE8CAF5059EE73BB4B58712A2291FA4AD5
echo "deb [ arch=amd64 ] https://repo.mongodb.org/apt/ubuntu precise/mongodb-org/3.6 multiverse" | sudo tee /etc/apt/sources.list.d/mongodb-org-3.6.list
sudo apt-get update

sudo apt-get install -y mongodb-org

설치가 완료되었다면 아래의 명령어로 서비스를 실행시킨다.

1
sudo service mongod start

서비스가 정상적으로 실행되었는지 확인하기 위해 다음과 같은 명령어를 사용한다.

1
sudo service mongodb status

이제 다음 명령어로 mongodb에 접속한다.

1
mongo

접속이 완료되었다면 database를 관리하기 위한 계정을 만들어야 한다.
이 계정을 통해 외부 컴퓨터에서도 본 database에 접근할 수 있게 된다.
다음과 같은 admin database에 접근하여 root user를 생성한다.

1
2
use admin
db.createUser({user: "root", pwd: "mypassword", roles: [{ role: "root", db: "admin" }] });

유저를 생성하였다면 다음 명령어로 설정파일을 열어 authorization을 enabled로 해준다.

1
cd /etc/mongod.conf

설정이 완료되었다면 mongodb를 다시 실행시킨다.

1
sudo service mongod restart

다시 시작한 뒤에는 사용할 계정을 만들어 준다.

1
2
3
4
5
use app    #app 대신에 내가 만들 db명을 선택
db.createUser(
{ user: "app",
pwd: "mypassword",
roles: ['readWrite','userAdmin'] } )

생성한 아이디로 로그인 해본다.

1
mongo -uapp -pmypassword app

connect to mongodb

1
mongo --port <포트> -u "<사용자 계정>" -p "<비밀번호>" --authenticationDatabase "admin"

Configuration

보안설정 바꾸기
Vim /etc/mongod.conf

https://velopert.com/457

Authoriztion 사용하기
http://www.tutorialbook.co.kr/entry/MongoDB-%EC%97%90%EC%84%9C-%EC%82%AC%EC%9A%A9%EC%9E%90-%EC%9D%B8%EC%A6%9D-authorization-%EC%82%AC%EC%9A%A9%ED%95%98%EA%B8%B0

Basic Concepts

Collection

create collection

1
db.createCollection(name, [options])

delete collection

1
db.COLLECTION_NAME.drop()

Schema

일종의 데이터의 양식이다.
이 스키마를 기반으로 모델을 생성한다.

Model

일종의 커넥션으로 다른 것들은 이 모델 객체에서 바로 수행한다.
여기서 새로운 데이터를 저장하는 save를 하기 위해서는 instance를 생성하여야 하고,
다른 경우는 이 모델에서 바로 수행한다.

Query

update

example

1
db.getCollection('schedule').update({"email":"test"}, {$set:{"email":"test@test.com"}}, {muti:true});
위 예제는 query를 만족하는 여러가지 데이터를 한번에 바꾸는 명령이다. 두번째 인자는 update 할 object 부분인데, {$set:{}} 을 넣어 특정 키값을 변경하고 있다. 만약 이렇게 $set 을 사용하지 않으면 해당 데이터가 통으로 교체되어 버린다.

Transaction

서버버전 4 이상에서 제공한다.

featurecompatibility를 “4.0” 으로 해야한다.

commitTransaction()은 sessionEnd 까지 포함된 개념이다.

Uninstallation

1
2
3
4
sudo service mongod stop
sudo apt-get purge mongodb-org*
sudo rm -r /var/log/mongodb
sudo rm -r /var/lib/mongodb

Cookbook

위치 찾기

1
db.collection.createIndex( { <location field> : "2dsphere" } )
Your browser is out-of-date!

Update your browser to view this website correctly. Update my browser now

×