MongoDB を使ってみる 4

今回は、実際にデータを登録して見ます。 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 などからも 簡単に連携できそうです。

Google サイト内検索

Amazonアソシエイト