只想知道我将如何进行以下选择:

架构:

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


它应该返回premium.isPremium == false或(premium.isPremium == true AND premium.expiryDate

最佳答案

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

10-01 02:06