我在Mongo有一个非常大的数据库。它有超过69 000份文件。
我决定取消其中的大多数。例如,我想要只有10个文档。
如何从终端内直接从数据库中随机删除多个文件?
我已经尝试了db.col_name.remove().limit(20)
无效。
答案 0 :(得分:2)
在https://jira.mongodb.org/browse/SERVER-1599实施之前,无法直接执行此操作。
作为解决方法,您可以执行以下操作。基本上,获取要删除的一批_ids,然后执行额外的.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}})