我想查找當前時間落在文檔的startour和endhour之間的所有文檔。我爲小時和分鐘設置了不同的字段。 我的架構查找所有文檔starthour和startminute之間的文檔starthour和endhour
const mySchema = new Schema({
startHour: { type: Number},
endHour: { type: Number},
startMinute: { type: Number},
endMinute: { type: Number}
})
我已經寫了下面這是不工作的查找查詢。這裏小時值和分鐘值從HTTP查詢來我已經轉換他們使用的查詢
find({
$and : [
{ $or: [{starthour : { $lt: hour}},
{ $and : [ {starthour: { $eq : hour}}, {startMinute: { $gt: minute}}]}
]},
{ $or: [{endHour : { $gt: nsh}},
{ $and : [ {endhour: { $eq : hour}}, {endMinute: { $gt: minute}}]}
]},
],
})
這將返回所有在哪裏(小時比starthour和endhour大於和小於)或文檔之前爲int(如果開始時間或結束時間等於小於開始分鐘的時間應大於分鐘)。
爲什麼不讓生活變得更容易,並簡單地表達「開始」和「結束」是從「一天中的幾分鐘」開始。每個小時有60分鐘,因此從上午8:00到下午5:00將是「開始:480,結束:1020」。然後,您只需在查詢中表示您的「當前分鐘數」,看看是否落在文檔範圍之間。比試圖在單獨的領域中玩弄小時和分鐘要容易得多。並且使用更少的存儲空間。 –
這是一個不錯的選擇。謝謝!! –