mongoid 2.0.0.beta.6 で遊ぶ

MongoId 可愛いよ、MongoId。
mongo 標準のシェルに潜るより r c してコンソールから叩く方が楽なので困る(嬉しい意味で)。


以前はこう出来たのが

where(:price => {'$gt' => 0})

今はこう

where(:price.gt => 0})


また exclude, not_in のような見慣れないメソッドがあった。
使っていないので見落としていただけかも。


bson のデータ型に対する厳格さが増したかも知れない。

以前は $gt => 0 で取れたのが取れなくなっている。

# これはもうダメ、nil が返る
Entry.first(:conditions=>{:published_at => {'$gt' => 0}})

# こうする
Entry.first(:conditions => {:published_at => nil})
=> #<Entry _id: 4befcdc10482931424000006, ..

# 逆の場合は
Entry.first(:conditions => {:published_at.ne => nil})
=> #<Entry _id: 4befcdc104829314240000…

# 値指定なら
Entry.first(:conditions => {:published_at.gt => 2.years.ago.utc})
=> #<Entry _id: 4befcdc10482931424000001, …


MongoId はよく出来ていると思う。
インタフェースのクセが AR2 時代のそれなので AR3 の cool さを見てしまうとちょっと寂しいけど。
機能的には満足しておりますです。