2014-10-09 75 views
1

只是想知道我怎麼會做如下選擇:貓鼬選擇

模式:

Item: { 
    ... 
    premium: { 
    isPremium: Boolean, 
    expiryDate: Date 
    } 
} 

它應該返回的所有項目,其中premium.isPremium ==虛假或( premium.isPremium == true AND premium.expiryDate < = currentDate)。

回答

2
Item.statics = { 
    getPremium: function (currentDate) { 
     return this.find().or([{'premium.isPremium': false}, {'premium.isPremium': true, 'premium.expiryDate': {$lte: currentDate}}]).exec() 
    } 
} 
+0

這似乎只是做一個或另一個,沒有把它們結合起來。如果第一個選項返回某些內容,則另一個選項不會運行。 – codephobia 2014-10-09 02:15:34

+1

您忘記將方括號或值包裹在[]中。我添加了它們,現在它似乎正在工作。更新你的答案,我會將其標記爲正確的。 – codephobia 2014-10-09 02:18:12