LoginSignup
2
2

More than 5 years have passed since last update.

営業マンが誰よりも MongoDB(最終回)

Last updated at Posted at 2016-06-27

DataSpider & MongoDB 最終回です。
せっかくなので、もうちょっと遊んでみます。


MongoDB にデータを追加

MongoDB(ドキュメント指向DB)の良さを思い出してみましょう。
「スキーマ定義をしなくても良い」という点ですね!

前回は2つのデータを入れましたが、いずれも同じスキーマでしたので、
ちょっと違うスキーマを持つデータを入れてみます。

> use sample
switched to db sample
> db.books.insert({id:3,title:"初めての PIMSYNC",price:80,author:"連携 太郎"})})
WriteResult({ "nInserted" : 1 })

今度は author というスキーマと一緒にデータを入れてみます。
こんな時でも DataSpider を使っていると連携は簡単です。
設定済みのアイコンを開いて、右下の「スキーマ定義の更新」ボタンを押すと先ほど定義したスキーマが追加されます。
author.jpg

スキーマ定義がバラバラだった場合

ドキュメント指向DBの良さでもありますが、MongoDB はスキーマがいくらでも追加できてしまいます。
これは素人の想像ですが、似たようなスキーマを定義してしまう人がいるのではないでしょうか。例えばこんな感じに・・・

> use sample
switched to db sample
> db.books.insert({id:4,title:"DataSpider 問題集",kakaku:800})
WriteResult({ "nInserted" : 1 })

既に price というスキーマがあるのに kakaku というスキーマを作ってしまったとします。
当然、別々のスキーマのデータとして扱われますが、実際には kakaku も prise も同等に扱って欲しいデータのはずです。

ここで、DataSpider の「文字列連結」の機能を使います。
文字列結合.jpg

この機能を使うと、kakaku のデータと price のデータを結合して出力してくれるため、どちらかのスキーマにデータが入っていれば、出力時には1つのカラムに出力してくれます。

例えば、

id:2,title:"Thunderbus ガイドブック",price:300
id:4,title:"DataSpider 問題集",kakaku:800

のデータがあった場合、文字列連結をせずにCSVで出力した場合には

2,Thunderbus ガイドブック,300,
4,DataSpider 問題集,,800

というように、空白のカラムを含んで出力されますが「文字列連結」を行った後に出力すると

2,Thunderbus ガイドブック,300
4,DataSpider 問題集,800

といったイメージで、無駄なカラムの出力が無くなります。素晴らしい!


まとめ

DataSpider を使うとこのようにデータの加工もアイコンベースで設定できてしまうので、MongoDB のようにスキーマ定義が不規則な環境でもデータ連携が超簡単です!

ということで、私の Qiita デビュー作は以上で終了です。

DataSpider & MongoDB の組み合わせが気になった方は是非アプレッソまで。

2
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
2