用在哪里的Mongoose查询

时间:2014-10-31 11:10:02

标签: node.js mongodb express mongoose mongodb-query

我有一个mongoose查询,可以找到用户获得但尚未兑换的所有奖励。

Reward.find({user: user, redeemed: false}).exec(callback)

我希望将其更改为所有未兑换的奖励,以及今天兑换的奖励。 这是正确的方法。

Reward.find({user:user})
      .where('redeemed').equals('false')
      .where('redeemed').equals('true').gt(yesterday)
      .exec(callback)

1 个答案:

答案 0 :(得分:1)

您需要使用or查询

Reward.find({
  user:user
  $or:[{
        redeemed: false
    },
    {
        redeemed: true
        redeemed_date: {
            $gt : yesterday
        }
    }]
  }, callback)

为了更好的可读性,您可以使用or作为承诺

    Reward.find({user:user})
      .or([{redeemed: false},
        {
            redeemed: true,
            redeemed_date: {
                $gt : yesterday
            }
        }])
      .exec(callback)