スポンサーサイト

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

Tag:スポンサー広告 

【Tips】MongoDBを使ってみる

最近よく耳にするNoSQL(Not only SQL)という言葉。

もともとはRDBの象徴であるSQL言語がないという意味で誕生した言葉です。

しかし「SQLはもはや要らない」というと少し行き過ぎな解釈になってしまうため、「Not only SQL(SQLだけじゃない)」という解釈が一般的です。

大きく3つに分けると以下のようになります。

• key-valueストア
• ドキュメント指向データベース
• オブジェクト指向データベース

今回の記事では2つ目の「ドキュメント指向データベース」の一つであるMongoDBについて書いていこうと思います。

ドキュメント指向データベースとはどのようなものなのでしょうか?

key-valueストアが

一つのkeyにひもづいて一つのvalueがある

といったようにごくシンプルなものであるのに対し

ドキュメント指向データベースではvalueにあたる部分が単純な値(数字や文字列)ではなく

構造を持っているドキュメント

になっています。

百聞は一見にしかず

実際に触ってみましょう

その前にMongoDBに出てくる用語で少し押させておきたいものがあります

collection → データの集まりMySQLでいうところのテーブルと同じです
document → データの単位MySQLでいうところのレコードと同じです

【MongoDBのダウンロード】
wget "http://fastdl.mongodb.org/linux/mongodb-linux-i686-1.6.1.tgz"
tar xvfz mongodb-linux-i686-1.6.1.tgz

【MongoDBをためるディレクトリを作成】
sudo mkdir -p /var/db/mongo

【MongoDBのデーモン(mongod)を起動】
sudo mongodb-linux-i686-1.6.1/bin/mongod --dbpath /var/db/mongo

【mongoクライアントを使う】
mongodb-linux-i686-1.6.1/bin/mongo

とすると

>

といったコマンドプロンプトが出ます。

データベースを見てみましょう

> show dbs
admin
local

次に自分でDBを使ってみましょう

> use test

ここでtestというデータベースがまだない場合でも自動的に作成してくれます
ここがMySQLとの違いですね

> db
test

とするとちゃんと test dbを使っていることが確認できますね

さあ、今作成して使用しているDBに何かデータを入れて行きましょう

とりあえず、articlesというcollectionに対して簡単なdocumentoをいれていきましょう。

> db.articles.save({
… title: "テストでMongoDBを使ってみます",
… author: "tak",
… content: "今回はテストでMongoDBにドキュメントを追加していきます"
… })

とするとドキュメントが一つarticlesコレクションに追加されたはずです。

> db.articles.find()
{ "_id" : ObjectId("4c714934d01139f94dbf6e60"), "title" : "テストでMongoDBを使ってみます", "author" : "tak", "content" : "今回はテストでMongoDBにドキュメントを追加していきます" }

といった形で確認ができると思います。

【MongoDBの長所】
MongoDBにはスキーマの定義というのをせずに使用できるため、かなり柔軟に操作ができます。
key-valueストアのDBの高速性とRDBの検索の柔軟性といったいいとこ取りでバランスがいい。

【MongoDBの短所】
唯一気になった点といえば、トランザクションが使えないといった点でしょうか。
スポンサーサイト
テーマ : UNIX/Linux
ジャンル : コンピュータ

Tag:未分類  Trackback:0 comment:0 

Comment

comment form
(編集・削除用):
管理者にだけ表示を許可
プロフィール

6rats

Author:6rats
こんにちは、ITベンチャーで働くエンジニアです
主に自分の周りで起きた技術的なことをメモとして書き残して行きます。
Android以外にもRuby/Ruby on RailsやFuelPHPなどなどたまにやります。基本的なスタンスとしては興味があるもしくは必要になったらいろんなことにチャレンジします。
最近はiOSアプリ開発を始めています。

購読
follow us in feedly
個人プロダクト

Androidアプリ

Twitterクライアント

Webアプリケーション

EcPriceWatch(Amazon価格の推移を計測、最安値を知らせるサービス)
Google AdSense
ブログ村
にほんブログ村 IT技術ブログへ
にほんブログ村
ブロとも申請フォーム

この人とブロともになる

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