今回は、実際にデータを登録して見ます。 MongoDB は、 事前にテーブルなどを作成しません。 (スキーマレスと呼ぶそうです)
データベースと言えば SQL なので 次のサイトが わかりやすくて参考になりました。
[参考]
SQL脳に優しいMongoDBクエリー入門 - あるプログラマーの後悔日誌
MongoDB の操作は JavaScript な感じです。
> db.books.insert({ name : "a" });
スキーマレスなので、 何の定義もなく いきなりこんな記述で、データを登録できてしまいます。
books の部分が『コレクション』で RDBMS だとテーブルのようなものだと思います。
そこに JSON 形式のデータを INSERT しました。
{ name : "a" }
"show collections" で コレクションの一覧を参照できます。
> show collections
books
system.indexes
さっき登録した books があります。
もう 1 件登録してみます。
> db.books.insert({ name : "b" });
コレクションの中身を見るには次のように コレクションに対して find() メソッドを使用します。
> db.books.find();
{ "_id" : ObjectId("4f5ff9e69d12fb10f7c2955f"), "name" : "a" }
{ "_id" : ObjectId("4f647e7b9d12fb10f7c29560"), "name" : "b" }
上のように暗黙的に "_id" が作成されて データが管理されます。
もう少し複雑なデータを登録してみます。
> db.books.insert({ name : "c", detail : { size : "b5", page : 120 }});
> db.books.find();
{ "_id" : ObjectId("4f5ff9e69d12fb10f7c2955f"), "name" : "a" }
{ "_id" : ObjectId("4f647e7b9d12fb10f7c29560"), "name" : "b" }
{ "_id" : ObjectId("4f6480479d12fb10f7c29561"), "name" : "c", "detail" : { "size" : "b5", "page" : 120 } }
このように MongoDB は 1 つの "_id" に対して 1 つの JSON 形式のデータ(ドキュメント)を格納する形式のようです。
Web のインターフェースを使って見てみます。
http://127.0.0.1:28017/test/books/
test の部分がデータベース名、bookes がコレクション名です。
{ "offset" : 0, "rows": [ { "_id" : { "$oid" : "4f5ff9e69d12fb10f7c2955f" }, "name" : "a" } , { "_id" : { "$oid" : "4f647e7b9d12fb10f7c29560" }, "name" : "b" } , { "_id" : { "$oid" : "4f6480479d12fb10f7c29561" }, "name" : "c", "detail" : { "size" : "b5", "page" : 120 } } ], "total_rows" : 3 , "query" : {} , "millis" : 0 }
こんなデータが返ってきました。
これなら Ajax や node.js などからも
簡単に連携できそうです。