2012-11-17 74 views
2

我想要得到這個簡單的查詢與貓鼬一起工作沒有運氣:找到明天在會議中心發生的所有事件。對於每個事件,計劃可以是特定的開始時間作爲日期類型,也可以是字符串格式爲「2012/11/16」的日期數組。但是,當{place:'conference center'}沒有條件時,相同的query.or條件仍然有效,所以我想我可能會錯誤地構造這個查詢。到目前爲止我沒有運氣,請提供建議/幫助? 「明天」條件是添加到「地點」條件的過濾器,所以我正在使用查詢鏈接。

謝謝!

Event.find({place:'conference center'}).or([ 
     { 
     'schedule.beginAtUtc' : { $gte: startOfTomorrow }, 
     'schedule.beginAtUtc' : { $lt: endOfTomorrow } 
     }, 

     { 
     'schedule.dates' : '2012/11/17' 
     } 
    ]); 

回答

4

您必須將兩個'schedule.beginAtUtc'字段合併爲一個,因爲對象不能有兩個具有相同名稱的字段。

像這樣:

Event.find({place:'conference center'}).or([ 
    { 
    'schedule.beginAtUtc' : { $gte: startOfTomorrow, $lt: endOfTomorrow } 
    }, 

    { 
    'schedule.dates' : '2012/11/17' 
    } 
]); 
+0

這解決了這個問題。謝謝! – yichen