7

Artistsというコレクションがあります。名前をartist_lookupsに変更したいと思います。どうすればよいですか?

4

4 に答える 4

6

mongoid5 /モンゴルビードライバー2:

# if you need to check whether foo exists
return unless Mongoid.default_client.collections.map(&:name).include?('foo')

# rename to bar
Mongoid.default_client.use(:admin).command(
  renameCollection: "#{Mongoid.default_client.database.name}.foo",
  to: "#{Mongoid.default_client.database.name}.bar"
)
于 2016-05-11T16:16:07.457 に答える
4

Mongoid Docsから:

class Band
  include Mongoid::Document
  store_in collection: "artists", database: "music", session: "secondary"
end

store_in collection: "artist_lookups"モデルで使用します。Artistこれにより、モデルをartist_lookupsコレクションに保存できます。

コレクション内の既存のデータを保持してartists名前を変更する場合は、アプリを一時的にシャットダウンしartist_lookups、MongoDBサーバーでコレクションの名前を変更してから、アプリを再起動することをお勧めします。

于 2012-08-22T20:38:09.527 に答える
4

非常に単純で、mongoシェルでは、次のようにします。

db.artists.renameCollection( "artist_lookups");

存在する場合にartist_lookupsを削除する場合:

db.artists.renameCollection( "artist_lookups"、true);

あなたが得ることができるいくつかの例外。

  • 10026 –ソース名前空間が存在しない場合に発生します。
  • 10027 –ターゲット名前空間が存在し、dropTargetがfalseまたは指定されていない場合に発生します。
  • 15967 –ターゲット名前空間が無効なコレクション名である場合に発生します。
于 2012-11-27T04:26:20.050 に答える
2
db.artists.renameCollection("artist_lookups")

確かに動作します。

于 2014-10-04T09:50:11.460 に答える