MongoDB - найти только элементы с логическим значением false из модели схемы - PullRequest
0 голосов
/ 12 октября 2018

Я использую MongoDB и NodeJS и пытаюсь найти все задачи с готовым: false для отображения на Dashboard.Я сортирую по самым новым и самым старым и с лимитом 4 для отправки и отображения, но он отправляет все задачи, и я хочу, чтобы отправлять только с done: false (это означает, что задачи не проверяются: 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);
            }
        });
};

1 Ответ

0 голосов
/ 13 октября 2018

Вы можете использовать опцию match внутри функции заполнения

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