unable to use $match operator for mongodb/mongoose aggregation with ObjectId

后端 未结 4 1753
攒了一身酷
攒了一身酷 2020-12-16 15:03

Relatively Simple Scenario:

I have this Voucher object which has a user property (of type ObjectId). I want to get the sum of

4条回答
  •  醉酒成梦
    2020-12-16 16:03

    When using the find method or findById the query can be only:

    var query = {
        $or: [
            {'_sender':req.body._id},
            {'_recipient':req.body._id}
        ]
    };
    

    When using aggregate the query need a cast

    var mongoose = require('mongoose');
    var query = {
        $or: [
            {'_sender':new mongoose.Types.ObjectId(decoded._id)},
            {'_recipient':new mongoose.Types.ObjectId(decoded._id)}
        ]
    };
    

提交回复
热议问题