从一个月前获得Mongo结果

时间:2016-12-20 18:39:43

标签: mongodb

我在我的数据库中有大约30-40条记录,例如之前的例子,我希望得到不到1个月的通知(从今天开始)。有没有办法在Mongo中获得这些结果而无需通过JavaScript传递今天的日期?或者,如果我必须通过JavaScript传递它,我将如何处理我创建的日期?

{
    "_id" : ObjectId("48445b4dc72153e9ad7f3bfb"),
    "notificationID" : "78723asd5-vnbb-xv31-afe0-fa9asf164e4",
    "notification" : "Notification #1",
    "created" : ISODate("2016-11-21T20:33:53.695Z")
}

感谢任何帮助,谢谢。

2 个答案:

答案 0 :(得分:3)

MongoDB有自己的Javascript解释器,所以,除非您的MongoDB服务器的日期与系统不同,否则它知道当前日期,因此您可以轻松使用简单的Javascript来计算您使用常规Date对象查找的值并在您的查询中使用它。

git merge

如果您需要的日期与数据库不同,我恐怕您不得不以某种方式将其作为参数传递。

答案 1 :(得分:0)

    const now = new Date()
    const temp = new Date(now).setMonth(now.getMonth() - 6);
    const priorSix = new Date(temp)

    Table.find({"date" : {$gte: priorSix, $lt: new Date()}}, (err, tables) => {
        if(err) throw new Error(err)
        
        res.status(200).json(tables)
    }).populate('foodList.item')

这段代码对我有用。它检索过去 6 个月的文件 :)