从Mongo数据库中删除已知数量的文档

时间:2013-05-23 15:21:03

标签: node.js mongodb

我在Mongo有一个非常大的数据库。它有超过69 000份文件。

我决定取消其中的大多数。例如,我想要只有10个文档。

如何从终端内直接从数据库中随机删除多个文件?

我已经尝试了db.col_name.remove().limit(20)无效。

1 个答案:

答案 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}})