ちょっとわけあってコレクション名を変更してみたくなったので。
renameCollection — MongoDB Manual 2.4.8
なんかすごい簡単にできそう。
やってみる。
> show collections testCol01 testCol02 > db.testCol01.renameCollection("col01"); { "ok" : 1 } > show collections col01 testCol02
かんたん!
もういっこも変更するよ!
> db.testCol02.renameCollection("col02"); { "assertion" : "You can't rename a sharded collection", "assertionCode" : 13138, "errmsg" : "db assertion failure", "ok" : 0 }
!?
どうやらShardingしてるコレクションの名前は変更できないみたい。
dumpしてrestoreみたいな方法しかないんだろうか…。
滅多にやる操作じゃないけどちょっと不便。
ついでなんで既にあるコレクション名に変更しようとしたらどうなるのか試してみる。
> db.col01.renameCollection("testCol02"); { "errmsg" : "exception: target namespace exists", "code" : 10027, "ok" : 0 }
エラーになった。しれっと上書きとかされたらどうしようかと思った。
存在しないコレクションを操作しようとした場合は以下のようなかんじ。
{ "errmsg" : "exception: source namespace does not exist", "code" : 10026, "ok" : 0 }
うむ。