ドキュメントの追加、変更、削除
概要
ドキュメントの追加、変更、削除を行う
データを制御する際はテーブルのような役割のコレクションを作成することが必要
追加
「insert」にて作成
> db.sample.insert({"key":"value"})
>
> db.sample.find()
{ "_id" : ObjectId("51641cce44106fa1a306541a"), "key" : "value" }
>
※データには「_id」と呼ばれるキーが付属され、これがRDMSのプライマリキーと同じもの
参照
findで対象のデータを全て表示
> db.sample.find()
{ "_id" : ObjectId("51641cce44106fa1a306541a"), "key" : "value" }
{ "_id" : ObjectId("51641da144106fa1a306541b"), "key" : "value2" }
>
findOneで最初の1件のみ表示
> db.sample.findOne()
{ "_id" : ObjectId("51641cce44106fa1a306541a"), "key" : "value" }
>
条件を指定して表示も可能
> db.sample.find({"key":"value"})
{ "_id" : ObjectId("51641cce44106fa1a306541a"), "key" : "value" }
>
更新(update)
条件に一致する場合に変更する
> db.sample.find()
{ "_id" : ObjectId("51641cce44106fa1a306541a"), "key" : "value" }
{ "_id" : ObjectId("51641da144106fa1a306541b"), "key" : "value2" }
{ "_id" : ObjectId("51641ed844106fa1a306541c"), "key" : "value2" }
>
> db.sample.update({ "_id" : ObjectId("51641ed844106fa1a306541c")}, {$set : { "key1" : "data", "key2" : "bbbb" }},false,true)
>
> db.sample.find()
{ "_id" : ObjectId("51641cce44106fa1a306541a"), "key" : "value" }
{ "_id" : ObjectId("51641da144106fa1a306541b"), "key" : "value2" }
{ "_id" : ObjectId("51641ed844106fa1a306541c"), "key" : "value2", "key1" : "data", "key2" : "bbbb" }
>
※db.コレクション.update({条件エリア}, {$set : { 変更エリア }}, 存在しない場合に追加するフラグ1, 複数存在する場合に全て変更するフラグ)
複数一致する場合に全て変更する
> db.sample.find()
{ "_id" : ObjectId("51641cce44106fa1a306541a"), "key" : "value" }
{ "_id" : ObjectId("51641da144106fa1a306541b"), "key" : "value2" }
{ "_id" : ObjectId("51641ed844106fa1a306541c"), "key" : "value2", "key1" : "data", "key2" : "bbbb" }
>
> db.sample.update({ "key":"value2"}, {$set : { "key1" : "test", "key2" : "test" } },false,true)
>
> db.sample.find()
{ "_id" : ObjectId("51641cce44106fa1a306541a"), "key" : "value" }
{ "_id" : ObjectId("51641ed844106fa1a306541c"), "key" : "value2", "key1" : "test", "key2" : "test" }
{ "_id" : ObjectId("51641da144106fa1a306541b"), "key" : "value2", "key1" : "test", "key2" : "test" }
>
存在しないキー情報の場合は追加
> db.sample.find()
{ "_id" : ObjectId("51641cce44106fa1a306541a"), "key" : "value" }
{ "_id" : ObjectId("51641ed844106fa1a306541c"), "key" : "value2", "key1" : "test", "key2" : "test" }
{ "_id" : ObjectId("51641da144106fa1a306541b"), "key" : "value2", "key1" : "test", "key2" : "test" }
>
> db.sample.update({ "aaa": "bbb"}, {$set : { "key1" : "data", "key2" : "bbbb" }},true,true)
>
> db.sample.find()
{ "_id" : ObjectId("51641cce44106fa1a306541a"), "key" : "value" }
{ "_id" : ObjectId("51641ed844106fa1a306541c"), "key" : "value2", "key1" : "test", "key2" : "test" }
{ "_id" : ObjectId("51641da144106fa1a306541b"), "key" : "value2", "key1" : "test", "key2" : "test" }
{ "_id" : ObjectId("516421a72841a448f5bc7a50"), "aaa" : "bbb", "key1" : "data", "key2" : "bbbb" }
>
更新(save)
「_id」を指定していない場合は追加される
> db.sample.find()
{ "_id" : ObjectId("51641cce44106fa1a306541a"), "key" : "value" }
{ "_id" : ObjectId("51641ed844106fa1a306541c"), "key" : "value2", "key1" : "test", "key2" : "test" }
{ "_id" : ObjectId("51641da144106fa1a306541b"), "key" : "value2", "key1" : "test", "key2" : "test" }
{ "_id" : ObjectId("516421a72841a448f5bc7a50"), "aaa" : "bbb", "key1" : "data", "key2" : "bbbb" }
>
> db.sample.save({"key":"value2"})
>
> db.sample.find()
{ "_id" : ObjectId("51641cce44106fa1a306541a"), "key" : "value" }
{ "_id" : ObjectId("51641ed844106fa1a306541c"), "key" : "value2", "key1" : "test", "key2" : "test" }
{ "_id" : ObjectId("51641da144106fa1a306541b"), "key" : "value2", "key1" : "test", "key2" : "test" }
{ "_id" : ObjectId("516421a72841a448f5bc7a50"), "aaa" : "bbb", "key1" : "data", "key2" : "bbbb" }
{ "_id" : ObjectId("5164245044106fa1a306541d"), "key" : "value2" }
>
「_id」を指定した場合は更新できる
> db.sample.find()
{ "_id" : ObjectId("51641cce44106fa1a306541a"), "key" : "value" }
{ "_id" : ObjectId("51641ed844106fa1a306541c"), "key" : "value2", "key1" : "test", "key2" : "test" }
{ "_id" : ObjectId("51641da144106fa1a306541b"), "key" : "value2", "key1" : "test", "key2" : "test" }
{ "_id" : ObjectId("516421a72841a448f5bc7a50"), "aaa" : "bbb", "key1" : "data", "key2" : "bbbb" }
{ "_id" : ObjectId("5164245044106fa1a306541d"), "key" : "value2" }
>
> db.sample.save({ "_id" : ObjectId("51641ed844106fa1a306541c")}, {"key1":"zzzz"})
>
> db.sample.find()
{ "_id" : ObjectId("51641cce44106fa1a306541a"), "key" : "value" }
{ "_id" : ObjectId("51641ed844106fa1a306541c"), "key1" : "zzzz" }
{ "_id" : ObjectId("51641da144106fa1a306541b"), "key" : "value2", "key1" : "test", "key2" : "test" }
{ "_id" : ObjectId("516421a72841a448f5bc7a50"), "aaa" : "bbb", "key1" : "data", "key2" : "bbbb" }
{ "_id" : ObjectId("5164245044106fa1a306541d"), "key" : "value2" }
>
更新(findAndModify)
カウンタを使用する
> db.sample.insert({ value : 1 })
>
> db.sample_seq.insert({ value : 1 })
>
> db.sample_seq.find()
{ "_id" : ObjectId("5164264e44106fa1a306541f"), "value" : 1 }
>
> db.sample_seq.findAndModify({ query : { "_id" : ObjectId("5164264e44106fa1a306541f") }, update : { $inc : { value : 1 }}, upsert : false,new : true })
{ "_id" : ObjectId("5164264e44106fa1a306541f"), "value" : 2 }
>
>
削除
条件を指定して削除
> db.sample.find()
{ "_id" : ObjectId("51641cce44106fa1a306541a"), "key" : "value" }
{ "_id" : ObjectId("51641ed844106fa1a306541c"), "key1" : "zzzz" }
{ "_id" : ObjectId("51641da144106fa1a306541b"), "key" : "value2", "key1" : "test", "key2" : "test" }
{ "_id" : ObjectId("516421a72841a448f5bc7a50"), "aaa" : "bbb", "key1" : "data", "key2" : "bbbb" }
{ "_id" : ObjectId("5164245044106fa1a306541d"), "key" : "value2" }
{ "_id" : ObjectId("5164262f44106fa1a306541e"), "value" : 1 }
>
> db.sample.remove({"key" : "value"})
>
> db.sample.find()
{ "_id" : ObjectId("51641ed844106fa1a306541c"), "key1" : "zzzz" }
{ "_id" : ObjectId("51641da144106fa1a306541b"), "key" : "value2", "key1" : "test", "key2" : "test" }
{ "_id" : ObjectId("516421a72841a448f5bc7a50"), "aaa" : "bbb", "key1" : "data", "key2" : "bbbb" }
{ "_id" : ObjectId("5164245044106fa1a306541d"), "key" : "value2" }
{ "_id" : ObjectId("5164262f44106fa1a306541e"), "value" : 1 }
>
全て削除
> db.sample.find()
{ "_id" : ObjectId("51641ed844106fa1a306541c"), "key1" : "zzzz" }
{ "_id" : ObjectId("51641da144106fa1a306541b"), "key" : "value2", "key1" : "test", "key2" : "test" }
{ "_id" : ObjectId("516421a72841a448f5bc7a50"), "aaa" : "bbb", "key1" : "data", "key2" : "bbbb" }
{ "_id" : ObjectId("5164245044106fa1a306541d"), "key" : "value2" }
{ "_id" : ObjectId("5164262f44106fa1a306541e"), "value" : 1 }
>
> db.sample.remove()
>
> db.sample.find()
>
最終更新:2013年04月09日 23:36