Installation
installation on ubuntu
먼저 다음과 같이 mongodb가 설치되어 있는지 확인한다.
mongod는 서버, mongo는 클라이언트 이다.
1 | mongod --version |
만약 설치가 되어있지 않다면 다음 명령어로 설치를 진행한다.1
2
3
4
5sudo 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
2use 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
5use 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
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}); |
Transaction
서버버전 4 이상에서 제공한다.
featurecompatibility를 “4.0” 으로 해야한다.
commitTransaction()은 sessionEnd 까지 포함된 개념이다.
Uninstallation
1 | sudo service mongod stop |
Cookbook
위치 찾기
1 | db.collection.createIndex( { <location field> : "2dsphere" } ) |