あいつの日誌β

働きながら旅しています。

mongodの罠

こんな感じで mongodにマスタデータを投入する約束をしているときに

mongoimport -d my_test_database -c MyTestTable myTestTable.json

こんな感じで既に存在しているidがあるのにそれを修正しないでマスタデータを追加してしまった場合

{ "_id" : "hoge", name:'fuga' }
{ "_id" : "hoge", name:'fugafuga' } // 追加した人はこれが反映されると信じている。

何故か次のような結果になりお昼ごはんを食べ損ねる人がでてきたりするので諸卿も気をつけるとよい。

% mongo
MongoDB shell version: 2.0.2
connecting to: test
> show dbs
local   (empty)
my_test_database        0.203125GB
...

> use my_test_database
switched to db my_test_database

> show collections
MyTestTable
system.indexes

> db.MyTestTable.find()
{ "_id" : "hoge", "name" : "fuga" }

とりあえず2.0.2の話。他のバージョンの事は知らない。