"uncap"一个上限的MongoDB集合

Bac*_*lit 4 mongodb nosql

有没有办法"打开"封顶集合?创建新集合并复制数据不是我的选择.

谢谢

Rem*_*iet 6

不,您可以使用"convertToCapped"命令将无上限的集合转换为上限集合,但是没有办法转向其他方式.

您唯一的选择是将集合克隆到无上限的集合并重命名,这显然涉及停机时间.


mie*_*ciu 5

不幸的是,这里唯一的选择是复制集合,删除旧集合并重命名新集合:

$> db.collection_name.copyTo('collection_name2')
$> db.collection_name.isCapped()
true
$> db.collection_name.drop()
$> db.collection_name2.renameCollection('collection_name')
$> db.collection_name.isCapped()
false
Run Code Online (Sandbox Code Playgroud)

  • 不要这样做。`copyTo` 需要一个全局锁并且会阻塞所有的写操作。如果你在生产中这样做,它会把一切都搞砸。而是参见 /sf/ask/743747511/#33889197 (2认同)