在特定时间删除MongoDB中集合的所有文档

时间:2020-11-06 13:44:12

标签: node.js database mongodb express mongoose

目标是在每天插入第一个新文档时删除集合中的所有旧文档。因此,馆藏只保留日常文件,而丢弃旧文件。

这里的关键部分是集合需要保留旧文档,直到当天the first new document。几天内也可能不会插入任何文件,因此应保留旧文件。

一种可能的解决方案是使用 pre post save middleware,然后将当前日期与每次插入的最新文档创建日期进行比较。但我认为这工作太多,可能会有更有效,更好的方法。

任何建议将不胜感激。

2 个答案:

答案 0 :(得分:0)

MongoDB唯一需要删除的文档是TTL(生存时间),它是MongoDB索引Here的类型。

但是关于您的情况,您没有提到其他方法。 Pre save是您可以在mongoose中使用的功能。

答案 1 :(得分:0)

这很大程度上可以归结为这个。

val graph = Graph.apply(verticesTrain.map(vertex => (vertex,1.0)),edges.map{case(s,d)=>Edge(s,d,1.0)})

val filtered = graph.subgraph(vpred = (vid,vd)=>vd!=null.asInstanceOf[Double])

filtered.vertices.count()
Out: Long
44906