1

如何使用 Mongoid + Moped 驱动程序重命名集合?

是否有http://docs.mongodb.org/manual/reference/command/renameCollection/的轻便摩托车实现?

4

3 回答 3

0

重命名集合是一个严重的变化,并且在分片环境中不起作用。

但是,您可以通过使用(可能)admin db 和 db 命令的应用程序来做到这一点。所以我可能会看看:轻便摩托车司机文档

于 2012-10-10T09:22:01.593 回答
0

我最近刚刚迁移到 Mongoid 7.x 并且会话不再存在(现在是客户端)

API 似乎已删除 .rename() 因此您可以使用它:

client = Mongo::Database.new(Mongoid.default_client, Mongo::Database::ADMIN, Mongoid.default_client.database.options)
client.command(renameCollection: "#{source_db}.#{source_collection}", 
    to: "#{target_db}.#{target_collection}", dropTarget: true)
于 2018-04-04T20:00:39.823 回答
0

可以通过Moped::Collection#rename方法重命名集合。

这是一个示例,将“foo”集合重命名为“bar”:

Mongoid::default_session[:foo].rename("bar")

在引擎盖下,命令的构造如下:

session.
  with(database: "admin", read: :primary).
  command(renameCollection: "#{database.name}.#{name}", to: "#{database.name}.#{to_name}")
于 2015-11-12T23:04:20.643 回答