用猫鼬查询填充文档

Query populated document with mongoose

我有以下 mongodb/mongoose 数据模型::

var UserSchema = new Schema({
     name: String
   , roles: [] // admin or client
   /* others object */
});

mongoose.model('User', UserSchema);

var ReviewSchema = new Schema({
    title: String
    , user: {
         type: Schema.ObjectId,
         ref: 'User'
    }
});

mongoose.model('Review', ReviewSchema);

现在我想获取所有 review,其中用户的角色是 admin。我尝试了以下方式:

Review
  .find( { 'user.roles': 'admin' } )
  .populate('user')
  .exec(function(err, review) {
     console.log("review : ", review); // null
  });

注意: "mongoose": "^4.2.9",

我该如何解决这个问题?提前致谢。

希望这段代码可以解决您的问题

Review.find()
.populate('user', null, { roles:"admin" })
.exec(function (err, review) {
    if(err) {
        console.log(err);
        res.json(err);
    }else {
        var review = review.filter(function (review) {
                    return review.user !== null;
                 }).pop();
       console.log(review);          
       res.json(review);
   }
});