MongoDB:如何获取超过30天的文档?

MongoDB:如何获取超过30天的文档?,mongodb,Mongodb,我知道以前有人问过这个问题,但它对我不起作用。我很抱歉再次问这个问题 我有一个表格,其中每个文档都有一个addedon字段: { "_id" : ObjectId("..."), ... "addedon" : "Nov 21, 2018 8:09:35 AM", ... } 我想获取所有超过30天的文档: db.mycollection.find({"addedon":{$lt: new Date(Date.now() - 30*24*60*60 * 1000)}}) 但结果却是空空如也

我知道以前有人问过这个问题,但它对我不起作用。我很抱歉再次问这个问题

我有一个表格,其中每个文档都有一个
addedon
字段:

{ "_id" : ObjectId("..."),
...
"addedon" : "Nov 21, 2018 8:09:35 AM", 
...
}
我想获取所有超过30天的文档:

db.mycollection.find({"addedon":{$lt: new Date(Date.now() - 30*24*60*60 * 1000)}})

但结果却是空空如也。有人能指出我做错了什么吗?

当addedon字段是字符串时,您必须恢复到javascript:

db.dateasstring.find({ $where: function() {
    return (new Date(this.addedon) < new Date(Date.now() - 30*24*60*60 * 1000));
}})
db.dateasstring.find({$where:function(){
返回(新日期(this.addedon)<新日期(Date.now()-30*24*60*60*1000));
}})

当addedon字段是字符串时,必须还原为javascript:

db.dateasstring.find({ $where: function() {
    return (new Date(this.addedon) < new Date(Date.now() - 30*24*60*60 * 1000));
}})
db.dateasstring.find({$where:function(){
返回(新日期(this.addedon)<新日期(Date.now()-30*24*60*60*1000));
}})

您是只想使用“addedon”字段,还是灵活地使用_id而不是“addedon”字段?addedon字段的类型是什么?字符串还是日期/ISODate?@Rodrigap“addedon”是字符串,这应该是我无法获得预期结果的原因。对,最糟糕的是,您不使用的日期格式是您只想使用字段“addedon”,还是您可以灵活地使用_id而不是“addedon”来执行此操作?addedon字段的类型是什么?字符串还是日期/ISODate?@rodrigoap“addedon”是一个字符串,这应该是我无法获得预期结果的原因。对,为了让事情变得更糟,您无法使用日期格式