mongoose.js:白天查找数据项

问题描述:

想这是你的模型:mongoose.js:白天查找数据项

var EventSchema = new Schema({ 
    title: String, 
    startDate: Date, 
    endDate: Date 
}); 

我想在一个日期扔(简单像'24 -12-2012' ),然后每一个检索在那一天开始或进行的事件。

你是怎么做的?

+0

查看该主题的食谱文章:HTTP: //cookbook.mongodb.org/patterns/date_range/ – JohnnyHK 2012-07-31 13:53:55

肯定的:

首先阅读了关于蒙戈查询语法的日期,这里是一个如何对日期范围:http://cookbook.mongodb.org/patterns/date_range/

然后是蒙戈语法翻译成猫鼬。

Event.where('startDate').lte(yourDate).exec(callback); //should do the trick 

现在,您只需要将日期字符串解析为javascript日期。有一些很酷的库来做到这一点,我相信moment.js将不会有该日期字符串的问题。

哦,我忘了魔术的最后一点:你把查询到连接到您的事件模型static method,所以从现在开始,你可以叫

Event.earlierThan(yourDate, callback); //Where your custom static is called 'earlierThan'. 
+0

感谢您的见解。就我所了解的代码而言,您将检索在给定日期之前开始的每个事件。因此,如果我想在单日获得所有东西,我应该做一个.gte(“24-12-2012 00:00”)。lte(“24-12-2012 23:59”)?另外那些在前一天开始但在当天结束的事件呢? – Sven 2012-07-31 14:06:49

+0

嘿。正确,是的,对于最后一种情况:只需使用'... where('endDate).lte(yourDate)'。 :) – rdrey 2012-07-31 14:19:26

+0

对上面的评论有一个修正:'lte'和'gte'可能不适用于你的''24-12-2012 00:00''等字符串,请确保将它们解析为Javascript日期! – rdrey 2012-07-31 14:22:23