我有一個集合預訂。這裏面收集我已經得到了調試一個文件:MongoDB - 檢查日期範圍A是否與其他日期範圍重疊b
{
"_id": ObjectID("55d7608120b345d2cc7c9f45"),
"name": "booking1",
"start": ISODate("2015-01-10T00:00:00.000Z"),
"end": ISODate("2015-01-20T00:00:00.000Z")}
現在我有第二個日期範圍,要檢查如果日期範圍乙方在預訂文件之一重疊。
我的查詢是:
db.booking.find({$or:[{"start":{$gt:ISODate("2015-01-15T00:00:00.000Z")}},{"end":{$lt:ISODate("2015-01-25T00:00:00.000Z")}}]});
當我執行它有時我得到的結果,當我在查詢更改日期我沒有得到任何結果。這不是邏輯!我不知道查詢是否正確,或者我應該改變策略。
我的應用程序是一個Node + JS + Express + MongoClient環境。
我希望答案, 謝謝所有問候語DroidSheep
有一刻我會嘗試它! :-)在第一眼看起來很好 – DroidSheep
我已更新查詢,以便匹配是包含性的,即如果日期範圍B剛好在查詢文檔日期範圍的末尾開始,則匹配。這是否會帶來預期的結果? – sheilak
到目前爲止的一個問題它是如何在MySql中? – DroidSheep