MongoDB - 从模式模型中仅查找布尔值为 false 的元素

MongoDB - find only elements with boolean false from Schema model

我不唱 MongoDB 和 NodeJS 我正在尝试查找 done: false 的所有任务以显示在仪表板上。 我正在按最新到最旧的顺序排序,发送和显示的限制为 4,但它正在发送所有任务,我希望只在完成时发送:false(这意味着任务不是 checked:done:true)但是我不知道如何将其放入填充选项中..

我的任务架构模型:

let mongoose = require("mongoose");

let taskSchema = new mongoose.Schema({

    tasktitle: String,
    taskcomment: String,
    project: [{
        type: mongoose.Schema.Types.ObjectId,
        ref: 'Project'
    }],
    user: [{
        type: mongoose.Schema.Types.ObjectId,
        ref: 'User'
    }],
    created: {
        type: Date,
        default: Date.now
    },
    done: {
        type: Boolean,
        default: false
    }
})

module.exports = mongoose.model('Tasks', taskSchema);

我的任务控制器:

exports.render_pending_tasks = (req, res) => {
let userid = req.user._id;

  User.findById(userid).populate({ path: 'tasks', options: { sort: { _id: -1 }, limit: 4 } })
      .exec((err, tasks) => {
         if (err) {
             console.log(err);
            } else {
                res.send(tasks);
            }
        });
};

您可以在填充函数中使用 match 选项

User.findById(userid)
 .populate({
  match: { done: false },
  path: 'tasks',
  options: { sort: { _id: -1 }, limit: 4 }
})