mongodb删除低于指定的所有日期

use*_*790 6 date mongodb

我有以下数据.

{
    deviceID: 186,
    date: "2014-3-15"
}
{
    deviceID: 186,
    date: "2014-3-14"
}
{
    deviceID: 186,
    date: "2014-3-13"
}
Run Code Online (Sandbox Code Playgroud)

和一些较低的日期,如2014-3-9 , 8 ,7 ,6等.

做的时候 db.coll.remove({date:{$lte:"2014-3-5"}})

Mongo删除了15,14,13,但保持单个数字日期.这可能是由于日期是一个字符串?

我不知道如何格式化日期,所以我可以删除某个日期以下的所有日期.

它应该是一个清理过程,删除日期低于指定日期的所有文档.

mit*_*esh 11

这是因为您查询的日期字段是字段而不是Date().在您的mongo文档而不是自定义日期字符串中,将javascript日期对象插入日期字段.

喜欢

{ deviceID: 186,,"date": new Date(2012, 7, 14) }
Run Code Online (Sandbox Code Playgroud)

当你执行删除时,就像这样

db.coll.remove({date:{$lte:new Date(2012, 7, 14)}})
Run Code Online (Sandbox Code Playgroud)