如何从MongoDB中的集合中除去前n个对象?例如,我只想保留我的集合中的前2000个对象,但目前有15000个对象。MongoDB - 从集合中删除对象
编辑:我的问题比this相关的问题更普遍。不是重复的。
如何从MongoDB中的集合中除去前n个对象?例如,我只想保留我的集合中的前2000个对象,但目前有15000个对象。MongoDB - 从集合中删除对象
编辑:我的问题比this相关的问题更普遍。不是重复的。
你可以选择第一个N
文件的ID(您想保留):
var ids = [];
db.collection.find().limit(N).toArray().map(function(doc){
ids.push(doc._id);
});
然后,您执行以下查询:
db.collection.remove({_id:{$nin:ids}})
这消除每一个元组,其ID不在数组ids
中。有关$nin
(即“不在”)运营商的更多信息,请参阅this link。
不错的解决方案。谢谢 :) –
您是否考虑过限制收集与max参数? https://docs.mongodb.org/manual/core/capped-collections/
db.createCollection( “日志”,{封顶:真正的,最大:2000});
如果你真的只是想删除所有的但最新的2000个对象,你可以找到_id并删除所有的东西$lt
比_id。
相关问题[如何删除mongodb中的N个文档](http://stackoverflow.com/questions/19065615/how-to-delete-n-numbers-of-documents-in-mongodb)。 – chridam