如何從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