2016-03-15 147 views
0

我想刪除MongoDB中的所有集合,其中這些集合中的最大文檔日期大於1年。
我試過的一切都還沒有工作,所以我希望你能幫助我:) 非常感謝!MongoDb:刪除特定集合

+0

最大日期? – TomG

+0

變量「date」的最大日期。所以在MySQL中它會像「...有最大(日期) Mike8989

+0

對不起,仍然不明白。是否要刪除這些集合中的所有文檔都超過1年的所有集合?至少有一份文件大於1年?你沒有成功做什麼查詢? – TomG

回答

0

我想你的意思是你在所有的集合模式中都有一個'date'字段。

你可以做這樣的事情,但要知道它也會放棄所有沒有'日期'字段的集合。

db.getCollectionNames().forEach(function (collection) { 
 

 
\t var lastYear = new Date(); 
 
\t lastYear.setFullYear(lastYear.getFullYear() - 1); 
 
\t 
 
\t var collectionCount = db[collection].count({date: {$gt: lastYear}}); 
 
\t 
 
\t if (0 === collectionCount) { 
 
\t \t db[collection].drop(); 
 
\t } 
 
})

+0

非常感謝,完美的作品! :) – Mike8989

0

你告訴你要刪除的集合,其中的所有文件都一年 舊的,所以你Intialise一個迭代器 然後使用count聚集,如果計數值超過一個然後用「滴」掉集合:)

+0

正是我提供的答案... – TomG