環境: Mac OSX 10.5.8
インストール 〜 起動
wget で tgz を取ってきて解凍して DB 用の適当なディレクトリ作って bin/mongod コマンドを叩けばすぐに起動できる。
wget http://downloads.mongodb.org/osx/mongodb-osx-i386-1.2.2.tgz tar xvzf mongodb-osx-i386-1.2.2.tgz cd mongodb-osx-i386-1.2.2 mkdir ~/tmp/db bin/mongod --dbpath ~/tmp/db
Ruby から使う
ライブラリのインストール
gem install mongo_ext
簡単な使い方
“foo” というデータベースの “test” というコレクション(テーブルみたいなもの?)に {’a’ => 10} というような Hash オブジェクトを突っ込む。
# mongodb example
require 'rubygems'
require 'mongo'
db = Mongo::Connection.new.db('foo')
coll = db.collection('test')
coll.remove
coll.insert({'a' => 10})
coll.insert({'b' => 20})
coll.insert({'c' => 30})
coll.find().each { |doc| puts doc.inspect }
たぶん、デフォルトで localhost の MongoDB に接続しにいってるんだろうな。
GridFS
GridFS (MongoDB で動作するファイルシステムみたいなもの?)を使ってみる。
“test.txt” というファイルに “Hello, world!” という文字列を書き込んだあとにファイルの内容を読み込んで画面に出力する。
# mongodb GridFS example
require 'rubygems'
require 'mongo'
require 'mongo/gridfs'
include GridFS
db = Mongo::Connection.new.db('grid')
GridStore.open(db, 'test.txt', 'w') do |f|
f.puts "Hello, world!"
end
GridStore.open(db, 'test.txt', 'r') do |f|
puts f.read
end
画像とかも保存できるんかな。
次回
次はアクセス制御とかのところを調べたい。
