MongoDBNoSQLデータベース。なんか流行ってるらしい
RubyバインディングはMongoidがいいらしい
MongoLabホスティングサービス。240MBまで無料https://mongolab.com/about/products/#/pricing
herokuと簡単に連携でき、どちらもAmazon EC2だからレイテンシが少ないらしい
容量超過すると、自動的に従量課金されるらしい 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)
GUIWindowsなら、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'
データベースに接続できていないとこうなるらしい。
MongoMapperのcreate!の罠Mongoid::Documentではcreate!にブロックが渡せるが、MongoMapper::Documentでは渡せないらしい。f*ckmongo_mapper-0.11.1 で確認。
saveでUPDATEが走らないことがあるメンバに代入しても、値が変わってなかったらsaveがスキップされるhttp://two.mongoid.org/docs/documents/dirty.html |