我在 Mongo 有一个非常大的数据库。它有超过 69 000 份文件。
我决定删除其中的大多数。例如,我只想拥有 10 个文档。
如何从终端内部的数据库中随机删除一些文档(直接)?
我已经尝试过db.col_name.remove().limit(20)
哪个不起作用。
在实施https://jira.mongodb.org/browse/SERVER-1599之前,无法直接执行此操作。
作为一种解决方法,您可以执行以下操作。基本上,获取一批要删除的 _id,然后再执行一次.remove()
调用以实际删除它们。
ids_to_remove = []
db.col.find({},{_id:1}).limit(100).forEach(function(doc){ids_to_remove.push(doc._id)});
db.col.remove({_id:{$in:ids_to_remove}})