mongodbを使ってみる

2013-01-14T00:00:00+00:00 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()

とりあえず初回はこんなもんかなーっと

mongodbを使ってみる (2) - operators -