【问题标题】:Mongoose Query with whereMongoose 查询 where
【发布时间】:2014-12-27 16:33:59
【问题描述】:

我有一个 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)

【问题讨论】:

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


    【解决方案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)
    

    【讨论】:

      猜你喜欢
      • 2014-08-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-10-10
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多