スモールデータで使うPowerShellとmongoDB

最近良く耳にするmongoDB。NoSQL、スキーマレスって何? 良くわからないのでちょこっと使ってみることにしました。

スキーマレスって何がいいの?

Exifデータはカメラの機種によって下記のように保有している項目数が違います。
新しい機種ほど項目が多いようです。

File name C:\mongodb\imgs\100323\IMG_5502.JPG
File size 678776 bytes
File date 2010:03:23 11:23:52
Camera make Canon
Camera model Canon PowerShot A620
Date/Time 2010:03:23 11:23:53
Resolution 1600 x 1200
Flash used Yes (auto, red eye reduction mode)
Focal length 29.2mm (35mm equivalent: 146mm)
CCD width 7.21mm
Exposure time 0.017 s (1/60)

  • PENTAX Optio WG-1 GPS(GPSをOFFにしていためGPSデータがとれていない)

File name C:\mongodb\imgs\101_0521\IMGP0866.JPG
File size 2093447 bytes
File date 2012:05:21 19:18:14
Camera make PENTAX
Camera model PENTAX Optio WG-1 GPS
Date/Time 2012:05:21 19:18:14
Resolution 4288 x 3216
Flash used Yes (manual)
Focal length 5.0mm (35mm equivalent: 28mm)
Exposure time 0.020 s (1/50)
Aperture f/4.2
ISO equiv 400
Whitebalance Auto
Metering Mode pattern
Focus range close
GPS Latitude ? ?
GPS Longitude ? ?
JPEG Quality 96

スキーマありのRDBに投入するためには事前の表定義が必要になりますが、だれかからもらったりする画像データにどんな項目があるのかはもらってみるまでわかりません。こんな時、スキーマレスなら事前の定義なしに配列のキーと値をセットを全部放り込んでおくことができます。とりあえず情報を取り込んでおいて使い方は後でゆっくり考えるような使い方が可能です。