我在我的数据库中有大约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")
}
感谢任何帮助,谢谢。
答案 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 个月的文件 :)