3
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

【メモ】mongoDBで環境間のデータに差異が無いか確認する方法

Posted at

動機

開発環境とリリース前確認用の環境で、MongoDBのデータに差異が無いか確認しようと思ったけど、
数十万件あるデータを比べるとか無理じゃね?と思った時に。

mongoexport使う

mongoexportで出力して、ちょいちょいと整形してやればよろし。
クエリも投げられるので、対象データの絞り込みは容易。

一致するはず!と期待しているフィールドを選んで、--fields--sort にそれぞれ指定してあげる。

mongoexport --host example.mongo --db hoge --collection piyo --query '{userId:ObjectId("xxxxx")}' --fields name,credit,zip --sort '{name:1,credit:1,zip:1}' --out hoge.json
mongoexport --host example.mongo --db fuga --collection piyo --query '{userId:ObjectId("xxxxx")}' --fields name,credit,zip --sort '{name:1,credit:1,zip:1}' --out fuga.json

そんままでは_idが当然のように一致しないので、除去する。_idが無いなら気にしなくていい。

 cat hoge.json | perl -pe 's/"_id" : \{ "\$oid" : "[a-f0-9]+" \}, //g' > hoge-trim.json
 cat fuga.json | perl -pe 's/"_id" : \{ "\$oid" : "[a-f0-9]+" \}, //g' > fuga-trim.json

あとはdiffとるだけ。

diff *-trim.json

お手軽。

3
3
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?