はじめてのMongoDB - SQL vs MongoDB

MongoDBはオープンソースのドキュメント指向データベース

  • JavaScriptのオブジェクトに近いデータのドキュメントとしてデータが保存される
  • 外部キー、joinがない
  • テーブルのスキーマ定義不要

SQL vs MongoDB

SQLとMongoDBの用語対応表

SQL MongoDB
database database
table collection
row document もしくは BSONドキュメント
column field
index index
primary key primary key

テーブルをコレクションと呼ぶのが曲者

データベースを選択するときの操作はSQLと同様

use database

CRUD操作

INSERT

usersコレクションにオブジェクトをinsert

・MongoDB

db.users.insert({name: "wkodate", age: 27});

SQL

INSERT INTO users(name, age) VALUES ("wkodate", 27)

SELECT

usersコレクションのすべてのドキュメントを参照

・MongoDB

db.users.find();

SQL

SELECT * FROM users

name = "wkodate" のすべてのドキュメントを参照

・MongoDB

db.users.find({name: "wkodate"});

SQL

SELECT * FROM users WHERE name = "wkodate"

UPDATE

wkodateのageを更新

・MongoDB

db.users.update({name: "wkodate"}, {$set: { age: 17}});

SQL

UPDATE users SET age = 17 WHERE name = "wkodate"

DELETE

usersコレクションのname=wkodateを削除

・MongoDB

db.users.remove({name: "wkodate"});

SQL

DELETE FROM users WHERE name = "wkodate"

usersコレクションのすべてのデータを削除

・MongoDB

db.users.remove({});

SQL

DELETE FROM users

まとめ

SQLとMongoDBとの違いを理解することができました。あとは実践あるのみだと思いました。

参考

MongoDB 公式サイト http://www.mongodb.org/