我有一个名为艺术家的收藏,我想将其重命名为 Artist_lookups。我该怎么做呢?
			
			4554 次
		
4 回答
            6        
        
		
使用 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"
)
    于 2016-05-11T16:16:07.457   回答
    
    
            4        
        
		
很简单,在 mongo shell 中,这样做:
db.artists.renameCollection("artist_lookups");
如果您想删除 artist_lookups(如果存在):
db.artists.renameCollection("artist_lookups", true);
你可以得到一些例外。
- 10026 – 如果源命名空间不存在则引发。
 - 10027 – 如果目标命名空间存在并且 dropTarget 为 false 或未指定,则引发。
 - 15967 – 如果目标命名空间是无效的集合名称,则引发。
 
于 2012-11-27T04:26:20.050   回答
    
    
            4        
        
		
来自Mongoid 文档:
class Band
  include Mongoid::Document
  store_in collection: "artists", database: "music", session: "secondary"
end
store_in collection: "artist_lookups"在您的模型中使用。这将使您可以将Artist模型存储在artist_lookups集合中。
如果你想保留artists集合中的现有数据,并重命名它,我建议暂时关闭你的应用程序,将集合重命名为artist_lookupsMongoDB 服务器上,然后重新启动应用程序。
于 2012-08-22T20:38:09.527   回答
    
    
            2        
        
		
db.artists.renameCollection("artist_lookups")
肯定会工作。
于 2014-10-04T09:50:11.460   回答