MongoDBを使う

$ mongo
MongoDB shell version: 2.0.2
connecting to: test
Tue Jan 17 22:43:09 Error: couldn't connect to server 127.0.0.1 shell/mongo.js:84
exception: connect failed

まず、サーバーであるmongod(daemon??)を動かす。mongodサーバーも立ち上がっていないのにmongoコマンドを打つと下記のようなエラーが出る。自分はこれに気付くまで時間を要した。

$ mongod
mongod --help for help and startup options
Tue Jan 17 22:44:57 [initandlisten] MongoDB starting : pid=2198 port=27017 dbpath=/data/db/ 64-bit host=xxxxxxxxxxxxxxxxxxxxxx
Tue Jan 17 22:44:57 [initandlisten] db version v2.0.2, pdfile version 4.5
Tue Jan 17 22:44:57 [initandlisten] git version: nogitversion
(略)

mongodを立ち上げたので、mongoのShellを立ち上げる

$ mongo
MongoDB shell version: 2.0.2
connecting to: test

ここからどんどんmongoDBのコマンドを打っていきましょう。データの入れ方は他のサイトを参考にしてもらうとして、今日はデータの参照方法について見ていく。

> show dbs
db	0.203125GB
local	(empty)
telnodb	0.203125GB
test	0.203125GB

MySQLでいうSHOW DATABASES

> use test

MySQLでいうuse test

> show collections
tasks
users

MySQLでいうshow tables

> db.tasks.find()
{ "_id" : ObjectId("4f16945a0220b112a5000066"), "label" : "", "created_at" : ISODate("2012-01-18T09:43:54Z"), "title" : "aaaa", "body" : "", "updated_at" : ISODate("2012-01-18T09:43:54Z"), "role" : null, "mission_id" : ObjectId("4f15a7040c5b9f0b4c00003b") }

MySQLでいうselect * from tasks;

db.って何よ。と思っていたが、ヘルプを見ると分かる。

> help
(略)
	db.foo.find()                list objects in collection foo
(略)

RDBMSとは違う点が多いので、ベストプラクティスを探るのも大変そう。