我知道当使用此命令消除保存的日期时,可以删除一些文档:
db.course.deleteMany({date: {"$lt": ISODate()}})
我试图做同样的事情,但我试图检查时间戳是否过世
所有已保存的时间戳都是这样的
1492466400000
是否可以使用条件创建一个命令来删除时间戳太旧的所有文档?
修改
我使用毫秒时间戳
答案 0 :(得分:1)
在MongoDB中你3.2你也可以使用TTL索引,你可以对MongoDB"如果{fieldDate}更老,那么3600秒"请删除所有文件。这对于日志记录非常有用(删除3个月以前的所有日志)。
也许不是你的用例,但我认为很高兴知道。
TL索引是特殊的单字段索引,MongoDB可以使用它在一定时间后或在特定时钟时间自动从集合中删除文档。数据到期对于某些类型的信息非常有用,例如机器生成的事件数据,日志和会话信息,这些信息只需要在数据库中持续一段有限的时间。
db.eventlog.createIndex( { "lastModifiedDate": 1 }, { expireAfterSeconds: 3600 } )
答案 1 :(得分:0)
我找到了这样做的方法
Slider
Slider slider1 = new Slider(0d, 0.25d, 0d);
Slider slider2 = new Slider(0d, 0.25d, 0d);
Slider slider3 = new Slider(0d, 0.25d, 0d);
Slider slider4 = new Slider(0d, 0.25d, 0d);
ProgressIndicator pi = new ProgressIndicator();
pi.progressProperty().bind(slider1.valueProperty().add(slider2.valueProperty())
.add(slider3.valueProperty()).add(slider4.valueProperty()));
条件会将Date转换为时间戳
和
db.course.deleteMany({date: {"$lt": ISODate()*1}})
将时间戳转换为日期。