主にプログラミングに関して。Python, .NET Framework(C#), JavaScript, その他いくらか。
記事にあるサンプルやコードは要検証。使用に際しては責任を負いかねます

スポンサーサイト

                
tags:
上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

mongoDB: データベース比較のためにちょっといじってみる

                
tags: mongoDB
 Apache Cassandraに続いてmongoDBをいじってみる。Linux Mint(Mate)にて。

 インストールはapt-getコマンドででき、インストールが終わればそのまま試せる。
$ sudo apt-get install mongodb

 インストールが済んだらmongoと打てばそのままmongoDBを試せる。
$ mongo

 あとはGettingStartedがあるのでそこをなぞってみるだけ。さらにSQLとの相違点もまとまっている:参考

 mongoDBはドキュメント指向データベースとされていて、ドキュメント指向って初めて聞く人にはなんだそれとなるだろう。個人的にはドキュメント…XMLみたいな?なんか使いづらそうだなとか思っていた。そうして実際にmongoDBに触れてみたらびっくり。mongoDB公式の説明でドキュメントというのはいわゆるオブジェクトだと説明されている。要はJavaScriptでオブジェクトと呼んでいるものがmongoDBで扱われるデータの形なのだ。プログラマが初めてMySQLなりSQLiteなりCassandraを触ろうとすると、行がどうで列がどうでテーブルがーと学んで、それをいじるためにSQLのような専用の言語を学ぶ必要がある。その点mongoDBなら、JavaScriptで言うところのオブジェクトがどんな名前で呼ばれてどう使われているかを知ればよくて、そのデータをいじるのはJavaScriptである。なんともプログラマに親和性の高いデータベースだと思う。長々と書いたのでここからはコードというかスクリプトというかコマンドを交えて。

 いわゆる行とかレコードと言われるものをmongoDBでは下記のように表す。JavaScriptでは見慣れたオブジェクトだ。
{foo1:"value1", foo2:"value2"}


 いわゆるテーブルを明示的に宣言しておく必要もなく、作ったデータをそのまま入れたいテーブルに入れられる。書き方はJavaScriptそのまんま。
db.testData.insert({foo1:"value1", foo2:"value2"})


 検索は条件をオブジェクトで渡すだけ。
db.testData.find({foo2:"value2"})


 いわゆる列やvalueとして配列も使える。
db.testArray.insert({foo1:[1, 2, 3], foo2:[3, 4, 5]})


 配列に対して以下のように書くと、配列がその値を含むかがチェックされる。同一の配列を条件にしなければ検索に掛からないということはない。
db.testArray.find({foo1:3})



まとめ
 メジャーなデータベースの多くは、使うためにSQLを知る必要がある。一方でmongoDBはJavaScriptとそのオブジェクトをデータの基本的な形として採用していて、プログラマにとって開発の敷居が低い。そして列に当たる部分に配列を使うことができ、これは中間テーブルなしに多対多を実現する機能であったりする。使いやすく選ぶ価値のあるデータベースじゃないだろうか。
            

コメントの投稿

非公開コメント

プロフィール

hMatoba

Author:hMatoba
Github

最新記事
リンク
作ったものなど
月別アーカイブ
カテゴリ
タグリスト

検索フォーム
Amazon
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。