我有一个名为艺术家的系列,我想将它重命名为artist_lookups。我该怎么做?
答案 0 :(得分: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
集合中的现有数据并重命名,我建议暂时关闭您的应用,将集合重命名为MongoDB服务器上的artist_lookups
,然后重新启动应用
答案 1 :(得分:4)
使用mongoid5 / mongo ruby驱动程序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"
)
答案 2 :(得分:2)
非常简单,在mongo shell中,这样做:
db.artists.renameCollection(“artist_lookups”);
如果您想删除artist_lookups(如果存在):
db.artists.renameCollection(“artist_lookups”,true);
你可以得到一些例外。
答案 3 :(得分:1)
db.artists.renameCollection("artist_lookups")
肯定会有用。