2012年1月16日月曜日

はじめてのMongoDB

はじめてのMongoDB

参考にしたサイト

ダウンロード

現時点の86x64のバージョンでは、2.0.2が最新なので、下記をダウンロード。
$ wget http://fastdl.mongodb.org/linux/mongodb-linux-x86_64-2.0.2.tgz
$ tar -xvzf mongodb-linux-x86_64-2.0.2.tgz
$ mkdir ~/mongo_test
$ mv mongodb-linux-x86_64-2.0.2 mongodb
$ pwd
/home/tiffany/mongodb/bin
$ ./mongod --dbpath ~/mongo_test/
Tue Dec 27 14:58:02 [initandlisten] MongoDB starting : pid=382 port=27017 dbpath=/home/tiffany/mongo_test/ 64-bit host=redmine-rvm
Tue Dec 27 14:58:02 [initandlisten] db version v2.0.2, pdfile version 4.5
Tue Dec 27 14:58:02 [initandlisten] git version: 514b122d308928517f5841888ceaa4246a7f18e3
Tue Dec 27 14:58:02 [initandlisten] build info: Linux bs-linux64.10gen.cc 2.6.21.7-2.ec2.v1.2.fc8xen #1 SMP Fri Nov 20 17:48:28 EST 2009 x86_64 BOOST_LIB_VERSION=1_41
Tue Dec 27 14:58:02 [initandlisten] options: { dbpath: "/home/tiffany/mongo_test/" }
Tue Dec 27 14:58:02 [initandlisten] journal dir=/home/tiffany/mongo_test/journal
Tue Dec 27 14:58:02 [initandlisten] recover : no journal files present, no recovery needed
Tue Dec 27 14:58:04 [initandlisten] preallocateIsFaster=true 27.82
Tue Dec 27 14:58:05 [initandlisten] preallocateIsFaster=true 22.32
Tue Dec 27 14:58:08 [initandlisten] preallocateIsFaster=true 23.08
Tue Dec 27 14:58:08 [initandlisten] preallocateIsFaster check took 6.006 secs
Tue Dec 27 14:58:08 [initandlisten] preallocating a journal file /home/tiffany/mongo_test/journal/prealloc.0
                115343360/1073741824    10%
                136314880/1073741824    12%
                (... 初回は長い)
                1017118720/1073741824   94%
                1059061760/1073741824   98%
Tue Dec 27 15:00:26 [initandlisten] preallocating a journal file /home/tiffany/mongo_test/journal/prealloc.1
                62914560/1073741824     5%
                94371840/1073741824     8%
                (... 初回は長い)
                996147200/1073741824    92%
                1059061760/1073741824   98%
Tue Dec 27 15:02:20 [initandlisten] preallocating a journal file /home/tiffany/mongo_test/journal/prealloc.2
                62914560/1073741824     5%
                136314880/1073741824    12%
                (... 初回は長い)
                996147200/1073741824    92%
                1038090240/1073741824   96%
Tue Dec 27 15:03:51 [websvr] admin web console waiting for connections on port 28017
Tue Dec 27 15:03:51 [initandlisten] waiting for connections on port 27017
Tue Dec 27 15:04:51 [clientcursormon] mem (MB) res:15 virt:100 mapped:0
mongoコンソール画面からアクセス
~/mongodb/bin$ ./mongo
MongoDB shell version: 2.0.2
connecting to: test
> show dbs
local   (empty)
> show collections
> db.users.save({name:"admin"})
> show dbs
local   (empty)
test    0.203125GB
> show collections
system.indexes
users
> db.users.find()
{ "_id" : ObjectId("4f0be472f1c128e1d88d7fa7"), "name" : "admin" }

データベースの作り方
インサート時に存在しなければ、自動的に作成してくれます。
上記のコレクションも同様です。
これにはビックリ!
便利だけど、ちょっと入力し間違えると存在しませんエラーが出ないので、違うデータベースやコレクションにインサートされてしまいますね。注意が必要そうです。
> show dbs
local   1.203125GB
test    0.203125GB

> use mydb
switched to db mydb

> show dbs
local   1.203125GB
test    0.203125GB

この時点ではまだmydbは生成されていません。
show collectionsしてみましょう。
> show collections
> show dbs
local   1.203125GB
mydb    (empty)
test    0.203125GB
生成されました!


データベースの削除
削除対象のデータベースに入り、 db.dropDatabase()を実行。
> show dbs
local   1.203125GB
mydb    (empty)
test    0.203125GB

> use mydb
switched to db mydb

> db.dropDatabase()
{ "dropped" : "mydb", "ok" : 1 }

> show dbs
local   1.203125GB
test    0.203125GB
削除されたことが確認できました。

0 件のコメント:

コメントを投稿

注: コメントを投稿できるのは、このブログのメンバーだけです。