如何将 MongoDb 的上限集合转换为非上限集合?

How to convert a MongoDb's capped collection to non-capped collection?

由于某些特定的业务要求,我们将数据存储到 MongoDB 的上限集合中,但现在完整的要求发生了变化,我们希望保留该集合中的所有记录。

我能够找到 "convertToCapped" 命令,但没有找到任何执行反之亦然操作的命令。

如何将其转换回无上限集合?

你可以copy它:

use admin
db.runCommand( { renameCollection: "yourdb.yourcollection", to: "yourdb.oldcapped" } )
use yourdb
db.oldcapped.copyTo("yourcollection")

然后ensure required indexes and create users in uncapped yourcollection. Run your tests, and if you are happy with results, dropoldcapped

不用说应该在维护期间完成 window。