mongodbを使ってみる
ず〜っと後回しにしてたMongoDBを使ってみる
環境はUbuntu12.04、インストールは普通にapt-getで可能なので(ry あとはmongoコマンドでmongodb shellを起動出来るのでそこで色々操作してみる
// DBを選択みたいな
use sample
// コレクション名をsamplesで突っ込む
db.samples.insert({ "name": "hoge" })
// 一覧取得みたいな (但し、あくまで取得はカーソル。一つだけな場合はfindOneを使う)
// 出力: { "_id" : ObjectId("50f3317f53f38643b73a412d"), "name" : "hoge" }
db.samples.find()
// 条件指定して取得みたいな
// 結果は出ない。マッチしない為
db.samples.find({ "name": "fuga" })
// データをアップデート (但し、更新は基本的に最初にマッチした物のみな模様。全体を更新する場合には第4引数のmultiをtrueにする模様)
db.samples.update({ "name": "hoge" }, { "name": "fuga" })
// 第3引数をtrueにした場合はupsertになる
// 上記で既に更新しててマッチしないので新しくデータが保管される
db.samples.update({ "name": "hoge" }, { "name": "fuga" }, true)
// saveを使えば_idがある場合(かつマッチする)にはupsertになる模様。それ以外は普通のinsert?
db.samples.save({ "name": "foobar" })
db.samples.save({ "_id": ObjectId("50f333f20ceb74a7f4c77ae7"), "size": 1 })
// saveを実行した状態でfind
db.samples.find()
/* 結果
{ "_id" : ObjectId("50f3317f53f38643b73a412d"), "name" : "fuga" }
{ "_id" : ObjectId("50f33321d268dc0a88dfd360"), "name" : "fug" }
{ "_id" : ObjectId("50f333f20ceb74a7f4c77ae7"), "size" : 1 }
*/
// データベースを抹殺
db.dropDatabase()
とりあえず初回はこんなもんかなーっと