はじめての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
削除されたことが確認できました。