빠르게 mongodb를 사용해보기 위해 window에 설치 해보았다.
설치는 mongodb home page에 설명이 쉽게 되어있다.
설치 다운로드링크이다.
http://www.mongodb.org/downloads
나는 Windows 64-bit를 사용하고 있고 Win7을 사용중이기 때문에 windows server 2008이나 Windows 7에서 더 좋은 성능을 보인다는
64bit 2008+ 빌드를 다운로드 했다.
압축을 풀면 <그림1>처럼 여러개의 실행 파일들이 생긴 것을 볼 수 있다.
<그림 1> 압축해제 후 bin 폴더의 모습
저기서 mongod는 mongo db서버 daemon이고 mongo는 client 프로그램이다. 재미있는 것은 client interface가 javascript라는 것이다.
그 다음에는 아래처럼 mongo db의 data를 저장할 폴더를 만든다. default는 아래와 같으므로 아래처럼 폴더를 만든다. unix에서도 위치는 같다.
C:\> mkdir \data
C:\> mkdir \data\db
만약 다른 폴더를 사용하고 싶다면 --dbpath 옵션을 사용하여 원하는 위치에 data를 저장하도록 할 수있다.
자 이제 mongo db 서버를 실행해보자.
아래 <그림 2>처럼 시작 -> cmd를 쳐서 cmd 프로그램을 실행시킨다.
<그림 2> cmd 창 열기
그럼, 아까 압축을 해제한 위치 내경우는 (C:\mongodb-win32-x86_64-2008plus-2.0.4)에 가서
cmd창에 아래 굵은 글씨처럼 mongod.exe라고 입력하면 서버가 시작된다.
C:\mongodb-win32-x86_64-2008plus-2.0.4\mongodb-win32-x86_64-2008plus-2.0.4\bin>mongod.exe
mongod.exe --help for help and startup options
Mon May 07 20:49:53 [initandlisten] MongoDB starting : pid=5628 port=27017 dbpat
h=/data/db 64-bit host=AD00034289
Mon May 07 20:49:53 [initandlisten] db version v2.0.4, pdfile version 4.5
Mon May 07 20:49:53 [initandlisten] git version: 329f3c47fe8136c03392c8f0e548506
cb21f8ebf
Mon May 07 20:49:53 [initandlisten] build info: windows sys.getwindowsversion(ma
jor=6, minor=1, build=7601, platform=2, service_pack='Service Pack 1') BOOST_LIB
_VERSION=1_42
Mon May 07 20:49:53 [initandlisten] options: {}
Mon May 07 20:49:53 [initandlisten] journal dir=/data/db/journal
Mon May 07 20:49:53 [initandlisten] recover : no journal files present, no recov
ery needed
Mon May 07 20:49:53 [initandlisten] waiting for connections on port 27017
Mon May 07 20:49:53 [websvr] admin web console waiting for connections on port 2
8017
Mon May 07 20:50:53 [clientcursormon] mem (MB) res:21 virt:81 mapped:0
다시 <그림 2> 처럼 cmd 창을 하나더 열자 이번에는 client를 실행해 볼것이다.
mongo.exe라고 입력하면 아래처럼 mongo db 서버에 접속한다 default는 localhost로 접속한다.
C:\mongodb-win32-x86_64-2008plus-2.0.4\mongodb-win32-x86_64-2008plus-2.0.4\bin>mongo.exe
MongoDB shell version: 2.0.4
connecting to: test
> 3+3
6
> db
test
> db.foo.insert({a:1})
> db.foo.find()
{ "_id" : ObjectId("4fa7b90238ef24d5228982d6"), "a" : 1 }
> show dbs
local (empty)
test 0.078125GB
> show collections
foo
system.indexes
> help
db.help() help on db methods
db.mycoll.help() help on collection methods
rs.help() help on replica set methods
help admin administrative help
help connect connecting to a db help
help keys key shortcuts
help misc misc things to know
help mr mapreduce
show dbs show database names
show collections show collections in current database
show users show users in current database
show profile show most recent system.profile entries wit
h time >= 1ms
show logs show the accessible logger names
show log [name] prints out the last segment of log in memor
y, 'global' is default
use <db_name> set current database
db.foo.find() list objects in collection foo
db.foo.find( { a : 1 } ) list objects in foo where a == 1
it result of the last line evaluated; use to f
urther iterate
DBQuery.shellBatchSize = x set default number of items to display on s
hell
exit quit the mongo shell
>
위에서 db.foo.insert({a:1})로 key value 값을 입력해준것을 볼수 있다.
또 find를 사용하여 들어있는 값을 찾아 볼 수 있다.
얼마전에 node.js를 알아보고 있었는데 둘다 javascript interface이면서 json형태로 되어있어서 좀 많이 놀랐다. 내가 회사에서 만들고 있는 client도 javascript인데 이제 javascript만으로 client, server, db를 모두 사용할 수 있게되었구나;;;;