Rails 3 + MongoDB のメモ

CouchDB definitive guide が届いたタイミングで MongoDB に乗り換えてしまい、Rails 3 と共に戯れ中。
文章が分散していたり欠けていたりしたのでメモを残してみる。


Gemfile

gem "bson_ext"
gem "mongoid", ">= 2.0.0.beta2"

run generator

g mongo:config
g mongo:entry

この時点で mongod にアクセスが入るようになる(たぶん)。


entry.rb

class Entry
  
  include Mongoid::Document
  include Mongoid::Timestamps
  
  field :title
  field :slug
  field :body
end

AR で使っていた fixture があるので投入する。

# rails console
YAML.load(File.read(Rails.root+"test/fixtures/entries.yml")).each{|idx, data| Entry.new(data).save! }

Entry.count してみるとカウントが取れる。
mongod のログにそれらしきものが残っている。

mongo コンソールにて

> db.entries.find().forEach(function(o) { print(o.title); })
MyString3
MyString-1year-ago
MyString4
MyString5
MyString-latest

取れた。Entry -> entries になっているのに注意。

mongo

  • db.your_obj.stats で調査、no ns はデータ不在(大抵はオブジェクト名違い)
  • コンソールは js なので
    • for (var key in db.your_obj) { print(key); } で enum なメンバがプリント出来る。

ソースは github に。