Interactive CouchDB練習
こんなのを試してみた。
Map関数
for (i in doc.tags) { var val = doc.tags[i]; if (doc.info.width >= doc.info.height) { emit([val, "Portrait"], 1); } else { emit([val, "Landscape"], 1); } }
Reduce関数
return sum(values);
出力は
{ "rows": [ {"key":["maui","Portrait"],"value":3}, {"key":["oak","Landscape"],"value":1}, {"key":["powder","Portrait"],"value":1}, {"key":["shark","Landscape"],"value":1}, {"key":["tahoe","Portrait"],"value":1}, {"key":["tuna","Landscape"],"value":1}, {"key":["tuna","Portrait"],"value":1} ] }
みたいになる。つまり横位置で撮ったマウイというタグのついた写真は3枚ということが判る。で、キーにリストを使うことができるということを理解。考えてみれば当たり前なんだけど。
で、そろそろ実物を触らないとな、ということでDebianにCouchDBをインストール。なんか最近パッケージの依存関係がおかしいな。diffパッチも大量に出てるみたいだし。なんだろ。