MongoDB を Scala2.9の Dynamic の機能使って操作する

もーんごーもんごー(・ω・´)

scala2.9.0から Dynamic っていう機能が入って、しかも casbah っていう MongoDB の Scala Driver には、それを使えるモジュールが、scala2.9.0でてからすぐに組み込まれました。

https://github.com/mongodb/casbah/tree/master/casbah-dynamic

それで、前からこの機能使ってたんですが、まぁべつに他に使う人いねぇだろうし、ましてや日本語で解説書いても誰も(ry
と思ってたけど、まぁ色々あったので書いてみることにします。


使い方は、上記のgithubのREADME.mdを・・・ではあれなので、一応自分が書いたちょっとしたコードも

引数書くときに、

「慣れればなんとなく 書きやすい and 読みやすい」

だけで、べつにできることが増えるわけではありません。


そして、これ使ってて気づいたのが、「正規表現と日時のオブジェクトに対応していない」っていう点(´・ω・`) このあたり
それでまぁ色々悩みながらtweetしながら、MLに下手な英語で質問してみた経緯↓

*1

http://groups.google.com/group/mongodb-casbah-users/browse_thread/thread/a2722273a98d337e

casbah 以外であまり Dynamic 使っている例を(少なくとも自分は)知らないし、まだScalaのコミュニティ的にも、casbahに入れてみたのも、実験的な感じなんですかね?*2
いやしかし、どうせならデフォルトで正規表現と日時のオブジェクトサポートしてくれてもいいんじゃねーとも思いつつ、たしかにちょっと継承して拡張すればできるし、PartiralFunctionになってて拡張しやすいかたちになっているね(・ω・ )

というわけで、書いてみたのがこちら↓

casbah 自体がどうのこうの とか scalaのDynamicがーーーというより、
英語のMLで質問してみた経験が殆ど無かったので、質問してみてちゃんと言いたいこと伝わって(作者本人から)回答もらったという経験が素直に嬉しかったですね(・ω・ )

*1: tweetの意図は https://github.com/mongodb/casbah/blob/07c91eeda8ebe28a7d13689358959e9c1d5a1776/casbah-dynamic/src/main/scala/DynamicDBObject.scala#L28 このコメントが(・ω・`)? だったので

*2: なんとなく作ったけど、別に今後、Dynamicのモジュールに機能追加する気がなさそうな・・・?