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枚ということが判る。で、キーにリストを使うことができるということを理解。考えてみれば当たり前なんだけど。
で、そろそろ実物を触らないとな、ということでDebianCouchDBをインストール。なんか最近パッケージの依存関係がおかしいな。diffパッチも大量に出てるみたいだし。なんだろ。