想這是你的模型:mongoose.js:白天查找數據項
var EventSchema = new Schema({
title: String,
startDate: Date,
endDate: Date
});
我想在一個日期扔(簡單像'24 -12-2012' ),然後每一個檢索在那一天開始或進行的事件。
你是怎麼做的?
想這是你的模型: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