mongoose.js:白天查找数据项
想这是你的模型:mongoose.js:白天查找数据项
var EventSchema = new Schema({
title: String,
startDate: Date,
endDate: Date
});
我想在一个日期扔(简单像'24 -12-2012' ),然后每一个检索在那一天开始或进行的事件。
你是怎么做的?
肯定的:
首先阅读了关于蒙戈查询语法的日期,这里是一个如何对日期范围: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'.
感谢您的见解。就我所了解的代码而言,您将检索在给定日期之前开始的每个事件。因此,如果我想在单日获得所有东西,我应该做一个.gte(“24-12-2012 00:00”)。lte(“24-12-2012 23:59”)?另外那些在前一天开始但在当天结束的事件呢? – Sven 2012-07-31 14:06:49
嘿。正确,是的,对于最后一种情况:只需使用'... where('endDate).lte(yourDate)'。 :) – rdrey 2012-07-31 14:19:26
对上面的评论有一个修正:'lte'和'gte'可能不适用于你的''24-12-2012 00:00''等字符串,请确保将它们解析为Javascript日期! – rdrey 2012-07-31 14:22:23
查看该主题的食谱文章:HTTP: //cookbook.mongodb.org/patterns/date_range/ – JohnnyHK 2012-07-31 13:53:55