日期查询使用_id,但不使用日期值-MongoDB

日期查询使用_id,但不使用日期值-MongoDB,mongodb,Mongodb,所以,我已经尝试了几个小时,但没有得到任何结果 我有一个MongoDB集合,它有一个日期值“scrape\u systemTime”,我正在用scrape\u systemTime:new date()插入它 我正在尝试使用以下方法获得比一周前更大的结果: db.scrape.find({scrape\u systemTime:{$lt:new Date(Date.now()-86400000*7)}) 它应该返回一组看起来像下面对象的文档,但不返回任何内容。(查看“scrape\u syste

所以,我已经尝试了几个小时,但没有得到任何结果

我有一个MongoDB集合,它有一个日期值
“scrape\u systemTime”
,我正在用
scrape\u systemTime:new date()插入它

我正在尝试使用以下方法获得比一周前更大的结果:

db.scrape.find({scrape\u systemTime:{$lt:new Date(Date.now()-86400000*7)})

它应该返回一组看起来像下面对象的文档,但不返回任何内容。(查看
“scrape\u systemTime”
属性,该属性的日期早一周。)

但是如果我使用
\u id
作为日期条件,即创建具有一周时间戳的
ObjectId()
,并在查询中使用,如下所示:

db.scrape.find({_id: { $lt: ObjectId( Math.floor( new Date( Date.now() - 86400000*7 ) / 1000 ).toString(16) + '0000000000000000')}})
它返回了预期的结果

为什么会这样?第一个查询语法有什么错误吗


谢谢。

文档中的
scrape\u systemTime
字段是一个字符串,而不是
日期
,这解释了查询不起作用的原因

因此,必须说明的是,您并没有像自己想象的那样插入文档,因为如果您将该字段插入为:

scrape_systemTime: Date()

是的,这就是问题所在。
scrape_systemTime: Date()