差分表示

  • 最後の更新で追加された行はこのように表示します。
  • 最後の更新で削除された行はこのように表示します。

*MongoDB
NoSQLデータベース。なんか流行ってるらしい

RubyバインディングはMongoidがいいらしい
http://blog.madoro.org/mn/86

*MongoLab
ホスティングサービス。240MBまで無料
https://mongolab.com/about/products/#/pricing

herokuと簡単に連携でき、どちらもAmazon EC2だからレイテンシが少ないらしい
http://addons.heroku.com/mongolab
http://devcenter.heroku.com/articles/mongolab

容量超過すると、自動的に従量課金されるらしい
https://mongolab.com/about/products/#/faqs
 Q. What happens if I exceed my for-pay database's storage limit?
 When your database goes over its limit, we'll charge a reasonable overage fee (metered daily and measured by the byte)

*GUI
Windowsなら、MongoVUEが素直でよさげ
http://www.mongodb.org/display/DOCS/Admin+UIs#AdminUIs-MongoVUE

*Mongoid
**レコードがあったら取得する。なかったら初期値を指定して作成
検索条件はidに限らない。
※find_or_create_by()の方がatomicっぽいけど、2回アクセスが発生しそう。どっちがいいんだろ
---(
record = Model.find_or_initialize_by(id: 1234)
if record.new?
  # ... 初期値設定

  record.save!
end
---)

**整数のサイズ
Mongoidなら、32bit超えの値もRuby同様気にしなくていいらしい。
自動でNumberLongになっている。
**Railsで使用時、ActiveRecord::ConnectionNotEstablished が出る
http://stackoverflow.com/questions/9444265/mongodb-mongoid-rails-3-1-error-with-active-record

**MongoMapperで、undefined method `collection' for nil:NilClass
トレースはこんな感じ
 mongo_mapper (0.11.1) lib/mongo_mapper/plugins/persistence.rb:49:in `collection'
 mongo_mapper (0.11.1) lib/mongo_mapper/plugins/querying.rb:67:in `query'
 mongo_mapper (0.11.1) lib/mongo_mapper/plugins/sci.rb:24:in `query'

データベースに接続できていないとこうなるらしい。
database.mongo.yml で <<: という表記が使われているが、これは環境によっては動かない(?)らしい。
これを使わず直接すべての項目を書けば通る。

**MongoMapperのcreate!の罠
Mongoid::Documentではcreate!にブロックが渡せるが、MongoMapper::Documentでは渡せないらしい。f*ck
mongo_mapper-0.11.1 で確認。

**saveでUPDATEが走らないことがある
メンバに代入しても、値が変わってなかったらsaveがスキップされる
http://two.mongoid.org/docs/documents/dirty.html