我有一个使用 Ruby 2.2.2 的测试应用程序,并且正在使用 Mongoid 7.0.0 和 Moped 1.5.3 和 MongoDB 3.6.2 - 我们正在使用 Mongoid 4.x 和 MongoDB 2.6 升级一个古老的代码库,并在API 一路走来
最严重的是我们曾经能够做 SomeModel.collection.rename 但是这个 API 方法现在不再存在(据我所知)并给出一个未定义的错误
我还尝试了以下方法:
Mongoid.default_client.command({ renameCollection: "test.some_collection", to: "test.some_collection2", dropTarget: true })
然而这会返回
Mongo::Error::OperationFailure: renameCollection may only be run against the admin database. (13)
但是,从命令外壳中,我可以发出:
db.some_collection.renameCollection("some_collection2")
这很有效——这似乎是我所看到的唯一的最后手段,我将如何将其作为助力车命令发出?(我对语法方案不太熟悉)
还有,这么看似简单的操作,有什么理由显然没有被 Mongoid 曝光?