如何在mongoose中的populate()之后使用.where()。equal()?

时间:2018-04-25 18:30:30

标签: javascript mongodb mongoose

这是我的两个模特:

var OfferSchema = mongoose.Schema({
    title: {
        type : String
    },
    commerce: {
        type : mongoose.Schema.Types.ObjectId,
        ref : 'Commerce'
    }
});

优惠包含商家:

var CommerceSchema = mongoose.Schema({
    name: {
        type: String
    }
});

然后我只想通过示例获得所有名为“Haircut”的商品,所以我要求:

module.exports.getOffresByName = function(req,callback){
    var name= req;
    Offre.find()
        .populate('commerce')
        .where('commerce.name').equals('Haircut')
        .exec(callback);
}

我从中得不到任何东西......(而且我知道我的商品名为'理发',所以问题出在我的要求上)

你能帮帮我吗? :d

1 个答案:

答案 0 :(得分:0)

最后我成功了,我换了另一条路!

module.exports.getOffresByName = function(req,callback){
        var name= req;
        var result = [];
        Offre.find()
        .populate('commerce') 
        .exec(function(err, offer){
            if(err) return err;
            var cmp= 0;
            for(var i= 0; i<offer.length; i++){
                if( offer[i].commerce.name== name){
                    result[cmp]= offer[i];
                    cmp++;
                }
            }
            callback(err, result);
        });