我有一个名为艺术家的收藏,我想将其重命名为 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_lookups
MongoDB 服务器上,然后重新启动应用程序。
于 2012-08-22T20:38:09.527 回答
2
db.artists.renameCollection("artist_lookups")
肯定会工作。
于 2014-10-04T09:50:11.460 回答