来週10genのエンジニアさんとディナーできる事になったので、 MongoDB: The Definitive Guideを読みつつ、実際に手動かしてみよう、と。 ■ MongoDBのインストール ダウンロードページ(http://www.mongodb.org/downloads)にいくと↓こんな感じになっています 2.0.1がレコメンドされてる感じで、32bit Windowsマシンを今回は使うので、 mongodb-win32-i386-2.0.1.zip をダウンロードしました。 オープンソースのプロダクトなのでソースもダウンロードできますが、C++とかちょっと 読めそうにないのでそっとしておきますw あ、あと、32bitのマシンの制限としてMAXで2GBのデータしか取り扱えないので注意~って 上記のハードコピーの下くらいのとこに書いてあります。 まぁ↓の記述みると、32bitサポートするとあれやこれやタルいし普通MongoDB使うような でかいデータ扱うなら64bitにすんべやって事ですかねぇ。 http://blog.mongodb.org/post/137788967/32-bit-limitations んでもって、今回はWindowsなのでアレですが、MacやLinuxだと↓みたいにパッケージがあるので サクっとインストールして動かす事が出来そうです。 ダウンロードしたバイナリのインストールは↓のQuickstartページを参考に進めていきます。 http://www.mongodb.org/display/DOCS/Quickstart+Windows UnzipしてC直下にズゴンと置きます。 #Linuxとかだったらバージョンのとこはあれにしてシンボリックリンクとかですかね。
By default MongoDB will store data in datadb, but it won't automatically create that folder, so we do so here: C:> mkdir data C:> mkdir datadb
って事なので、その通りやっておきます。 ■ MongoDBサーバの起動 上記でインストールしたバイナリ(mongod.exe)を使ってプロセスを起動してみます。 コンソールでbinディレクトリに移動して叩いてやると以下のように起動します。 出てきたメッセージを摘んでみると、32bitだとジャーナルファイルがデフォルト無いよん、とか #何を記録しておくアレなのか分かりませんがw
Sun Nov 06 11:30:39 warning: 32-bit servers don't have journaling enabled by default. Please use --journal if you want durability.
プロセス番号とポートとデータベースのパスはここですよん、とか
Sun Nov 06 11:30:39 [initandlisten] MongoDB starting : pid=6128 port=27017 dbpath=/data/db 32-bit host=P12895
2ギガの制限があるんですよ、とか
Sun Nov 06 11:30:39 [initandlisten] ** NOTE: when using MongoDB 32 bit, you are limited to about 2 gigabytes of data
MongoDBのバージョンとGitのSHAとか出てきます。MongoDBは開発にGit使ってるんですね~
Sun Nov 06 11:30:39 [initandlisten] db version v2.0.1, pdfile version 4.5 Sun Nov 06 11:30:39 [initandlisten] git version: 3a5cf0e2134a830d38d2d1aae7e88cac31bdd684
■ MongoDBクライアントを使ってみる 先ほど立ち上げたサーバに対して、今度はクライアントコマンドを使ってアクセスしてみます。 create databaseとかしたわけでもないですが、 デフォルトでは connecting to: test ってことでtestというデータベースに繋がるようです。 とりあえず足し算とかdbコマンドは置いておいて、 fooというコレクションに{ a : 1 }というBSONをインサートします。 BSON(http://bsonspec.org/)ってのは↓で、BinaryなJSONなんだよ、と。MongoDBではドキュメントにこのBSONを使います。
BSON [bee · sahn], short for Binary JSON, is a binary-encoded serialization of JSON-like documents.
また、コレクションっていうのはRDBMSで言うところのテーブルみたいなものですが、 DDLっちゅうかスキーマ定義的なのはありゃしませんよー、と。 #この辺、JavaScriptでオリャっとホゲホゲするのが好きな人には #ワクワクしちゃう感じなんだろうなぁとか思ったりします。 #(自分もそんなエンジニアになりたいですw) また、WindowsのマシンにMongoDBをインストールする上↓のブログはとても参考になります! MongoDB のインストール | Web/DB プログラミング徹底解説